/*
 * Copyright Codeplay Software Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use these files except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// DO NOT MODIFY BY HAND
// This file was automatically generated by generate_depthwise_conv2d_tests.py.
// Results calculated using Tensorflow v1.12.0.

#include <gtest/gtest.h>

#include "sycldnn/padding_mode.h"

#include "test/types/cartesian_product.h"
#include "test/types/kernel_data_types.h"
#include "test/types/test_backend_types.h"
#include "test/types/to_gtest_types.h"

#include "test/depthwise_conv2d/window_stride_fixture.h"

#include <array>
#include <vector>

using DataTypeList = sycldnn::types::KernelDataTypes;
using Backends = sycldnn::types::DefaultBackendTypes;

using SNNTypePairs =
    sycldnn::types::CartesianProduct<DataTypeList, Backends>::type;
using GTestTypePairs = sycldnn::types::ToGTestTypes<SNNTypePairs>::type;

template <typename Pair>
using ForwardWindow7Stride4 =
    sycldnn::depthwise_conv2d::WindowStrideTest<Pair, 7, 4>;
TYPED_TEST_SUITE(ForwardWindow7Stride4, GTestTypePairs);
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {24525., 36890., 27925., 63630., 90013.,
                                         64610., 47125., 64750., 45125.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {60613., 65513., 114513., 119413.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      48425.,  49050.,  72800.,  73780.,  55075.,  55850.,
      125230., 127260., 177037., 180026., 126980., 129220.,
      91975.,  94250.,  126210., 129500., 87825.,  90250.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {119413., 121226., 129017., 131026.,
                                         225057., 229026., 234661., 238826.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      96225.,  96850.,  97475.,  98100.,  144620., 145600., 146580., 147560.,
      109375., 110150., 110925., 111700., 248430., 250460., 252490., 254520.,
      351085., 354074., 357063., 360052., 251720., 253960., 256200., 258440.,
      181675., 183950., 186225., 188500., 249130., 252420., 255710., 259000.,
      173225., 175650., 178075., 180500.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      237013., 238826., 240639., 242452., 256025., 258034., 260043., 262052.,
      446145., 450114., 454083., 458052., 465157., 469322., 473487., 477652.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      95225.,  98100.,  143395., 147560., 108625., 111700.,
      248675., 254520., 351673., 360052., 252315., 258440.,
      183025., 188500., 251195., 259000., 174825., 180500.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {236425., 242452., 255633., 262052.,
                                         447713., 458052., 466921., 477652.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      189225., 190450., 194950., 196200., 284865., 286790., 293160., 295120.,
      215725., 217250., 221850., 223400., 493325., 497350., 504980., 509040.,
      697417., 703346., 714126., 720104., 500185., 504630., 512400., 516880.,
      361525., 366050., 372450., 377000., 495845., 502390., 511420., 518000.,
      344825., 349650., 356150., 361000.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      469273., 472850., 481278., 484904., 507297., 511266., 520086., 524104.,
      887537., 895426., 908166., 916104., 925561., 933842., 946974., 955304.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      377225.,  378450.,  379675.,  380900.,  388650.,  389900.,  391150.,
      392400.,  567805.,  569730.,  571655.,  573580.,  584360.,  586320.,
      588280.,  590240.,  429925.,  431450.,  432975.,  434500.,  442150.,
      443700.,  445250.,  446800.,  982625.,  986650.,  990675.,  994700.,
      1005900., 1009960., 1014020., 1018080., 1388905., 1394834., 1400763.,
      1406692., 1422274., 1428252., 1434230., 1440208., 995925.,  1000370.,
      1004815., 1009260., 1020320., 1024800., 1029280., 1033760., 718525.,
      723050.,  727575.,  732100.,  740350.,  744900.,  749450.,  754000.,
      985145.,  991690.,  998235.,  1004780., 1016260., 1022840., 1029420.,
      1036000., 684825.,  689650.,  694475.,  699300.,  707450.,  712300.,
      717150.,  722000.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      934969.,  938546.,  942123.,  945700.,  958930.,  962556.,  966182.,
      969808.,  1010625., 1014594., 1018563., 1022532., 1036154., 1040172.,
      1044190., 1048208., 1767185., 1775074., 1782963., 1790852., 1808394.,
      1816332., 1824270., 1832208., 1842841., 1851122., 1859403., 1867684.,
      1885618., 1893948., 1902278., 1910608.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      375225.,  380900.,  386625.,  392400.,  565355.,  573580.,
      581875.,  590240.,  428425.,  434500.,  440625.,  446800.,
      983115.,  994700.,  1006355., 1018080., 1390081., 1406692.,
      1423401., 1440208., 997115.,  1009260., 1021475., 1033760.,
      721225.,  732100.,  743025.,  754000.,  989275.,  1004780.,
      1020355., 1036000., 688025.,  699300.,  710625.,  722000.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      933793.,  945700.,  957705.,  969808.,  1009841., 1022532.,
      1035321., 1048208., 1770321., 1790852., 1811481., 1832208.,
      1846369., 1867684., 1889097., 1910608.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      748025.,  750450.,  759350.,  761800.,  770775.,  773250.,  782300.,
      784800.,  1126895., 1130710., 1143310., 1147160., 1159865., 1163750.,
      1176560., 1180480., 853825.,  856850.,  865950.,  869000.,  878175.,
      881250.,  890500.,  893600.,  1958215., 1966230., 1981350., 1989400.,
      2004625., 2012710., 2028040., 2036160., 2768353., 2780162., 2801526.,
      2813384., 2834895., 2846802., 2868460., 2880416., 1985375., 1994230.,
      2009630., 2018520., 2034025., 2042950., 2058560., 2067520., 1433425.,
      1442450., 1455150., 1464200., 1476975., 1486050., 1498900., 1508000.,
      1965495., 1978550., 1996470., 2009560., 2027585., 2040710., 2058840.,
      2072000., 1366425., 1376050., 1388950., 1398600., 1411575., 1421250.,
      1434300., 1444000.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1860481., 1867586., 1884246., 1891400., 1908207., 1915410., 1932364.,
      1939616., 2011793., 2019682., 2037126., 2045064., 2062655., 2070642.,
      2088380., 2096416., 3524913., 3540642., 3565926., 3581704., 3607135.,
      3622962., 3648540., 3664416., 3676225., 3692738., 3718806., 3735368.,
      3761583., 3778194., 3804556., 3821216.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1493625., 1496050., 1498475., 1500900., 1516250., 1518700., 1521150.,
      1523600., 1539075., 1541550., 1544025., 1546500., 1562100., 1564600.,
      1567100., 1569600., 2249975., 2253790., 2257605., 2261420., 2282770.,
      2286620., 2290470., 2294320., 2315845., 2319730., 2323615., 2327500.,
      2349200., 2353120., 2357040., 2360960., 1704625., 1707650., 1710675.,
      1713700., 1728850., 1731900., 1734950., 1738000., 1753275., 1756350.,
      1759425., 1762500., 1777900., 1781000., 1784100., 1787200., 3908415.,
      3916430., 3924445., 3932460., 3954650., 3962700., 3970750., 3978800.,
      4001165., 4009250., 4017335., 4025420., 4047960., 4056080., 4064200.,
      4072320., 5524897., 5536706., 5548515., 5560324., 5591194., 5603052.,
      5614910., 5626768., 5657883., 5669790., 5681697., 5693604., 5724964.,
      5736920., 5748876., 5760832., 3961895., 3970750., 3979605., 3988460.,
      4010370., 4019260., 4028150., 4037040., 4059125., 4068050., 4076975.,
      4085900., 4108160., 4117120., 4126080., 4135040., 2857825., 2866850.,
      2875875., 2884900., 2901250., 2910300., 2919350., 2928400., 2944875.,
      2953950., 2963025., 2972100., 2988700., 2997800., 3006900., 3016000.,
      3917935., 3930990., 3944045., 3957100., 3979850., 3992940., 4006030.,
      4019120., 4042045., 4055170., 4068295., 4081420., 4104520., 4117680.,
      4130840., 4144000., 2723225., 2732850., 2742475., 2752100., 2768250.,
      2777900., 2787550., 2797200., 2813475., 2823150., 2832825., 2842500.,
      2858900., 2868600., 2878300., 2888000.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3713857., 3720962., 3728067., 3735172., 3761338., 3768492., 3775646.,
      3782800., 3809211., 3816414., 3823617., 3830820., 3857476., 3864728.,
      3871980., 3879232., 4015697., 4023586., 4031475., 4039364., 4066314.,
      4074252., 4082190., 4090128., 4117323., 4125310., 4133297., 4141284.,
      4168724., 4176760., 4184796., 4192832., 7034097., 7049826., 7065555.,
      7081284., 7116074., 7131852., 7147630., 7163408., 7198443., 7214270.,
      7230097., 7245924., 7281204., 7297080., 7312956., 7328832., 7335937.,
      7352450., 7368963., 7385476., 7421050., 7437612., 7454174., 7470736.,
      7506555., 7523166., 7539777., 7556388., 7592452., 7609112., 7625772.,
      7642432.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {31940., 40740., 30600., 82243., 98735.,
                                         70630., 60350., 70910., 49300.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {65660., 70560., 124460., 129360.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      63055.,  63880.,  80395.,  81480.,  60350.,  61200.,
      161819., 164486., 194187., 197470., 138810., 141260.,
      117715., 120700., 138215., 141820., 95950.,  98600.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {129360., 131320., 138964., 141120.,
                                         244608., 248920., 254212., 258720.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      125285., 126110., 126935., 127760., 159705., 160790., 161875., 162960.,
      119850., 120700., 121550., 122400., 320971., 323638., 326305., 328972.,
      385091., 388374., 391657., 394940., 275170., 277620., 280070., 282520.,
      232445., 235430., 238415., 241400., 272825., 276430., 280035., 283640.,
      189250., 191900., 194550., 197200.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      256760., 258720., 260680., 262640., 275772., 277928., 280084., 282240.,
      484904., 489216., 493528., 497840., 503916., 508424., 512932., 517440.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      124190., 127760., 158585., 162960., 119175., 122400.,
      321538., 328972., 385973., 394940., 275975., 282520.,
      234350., 241400., 275205., 283640., 191075., 197200.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {256319., 262640., 275527., 282240.,
                                         486815., 497840., 506023., 517440.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      246760., 248380., 253870., 255520., 315035., 317170., 323750., 325920.,
      236675., 238350., 243100., 244800., 637784., 643076., 652610., 657944.,
      765429., 771946., 783314., 789880., 547085., 551950., 560140., 565040.,
      462760., 468700., 476830., 482800., 543235., 550410., 560070., 567280.,
      376875., 382150., 389100., 394400.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      508767.,  512638.,  521360.,  525280., 546791., 551054.,
      560168.,  564480.,  965055.,  973630., 987056., 995680.,
      1003079., 1012046., 1025864., 1034880.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      491900.,  493520.,  495140.,  496760.,  506090.,  507740.,  509390.,
      511040.,  627935.,  630070.,  632205.,  634340.,  645330.,  647500.,
      649670.,  651840.,  471675.,  473350.,  475025.,  476700.,  484500.,
      486200.,  487900.,  489600.,  1270276., 1275568., 1280860., 1286152.,
      1299886., 1305220., 1310554., 1315888., 1524341., 1530858., 1537375.,
      1543892., 1560062., 1566628., 1573194., 1579760., 1089305., 1094170.,
      1099035., 1103900., 1115380., 1120280., 1125180., 1130080., 919580.,
      925520.,  931460.,  937400.,  947690.,  953660.,  959630.,  965600.,
      1079295., 1086470., 1093645., 1100820., 1112930., 1120140., 1127350.,
      1134560., 748475.,  753750.,  759025.,  764300.,  772900.,  778200.,
      783500.,  788800.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1013663., 1017534., 1021405., 1025276., 1038800., 1042720., 1046640.,
      1050560., 1089319., 1093582., 1097845., 1102108., 1116024., 1120336.,
      1124648., 1128960., 1921535., 1930110., 1938685., 1947260., 1965488.,
      1974112., 1982736., 1991360., 1997191., 2006158., 2015125., 2024092.,
      2042712., 2051728., 2060744., 2069760.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      489710.,  496760.,  503870.,  511040.,  625695.,  634340.,
      643055.,  651840.,  470325.,  476700.,  483125.,  489600.,
      1271410., 1286152., 1300978., 1315888., 1526105., 1543892.,
      1561777., 1579760., 1090915., 1103900., 1116955., 1130080.,
      923390.,  937400.,  951470.,  965600.,  1084055., 1100820.,
      1117655., 1134560., 752125.,  764300.,  776525.,  788800.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1012781., 1025276., 1037869., 1050560., 1088829., 1102108.,
      1115485., 1128960., 1925357., 1947260., 1969261., 1991360.,
      2001405., 2024092., 2046877., 2069760.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      976210.,  979420.,  990280.,  993520.,  1004470., 1007740., 1018780.,
      1022080., 1247155., 1251390., 1264410., 1268680., 1281805., 1286110.,
      1299340., 1303680., 937325.,  940650.,  950050.,  953400.,  962875.,
      966250.,  975800.,  979200.,  2532278., 2542820., 2561720., 2572304.,
      2591330., 2601956., 2621108., 2631776., 3039225., 3052210., 3074750.,
      3087784., 3110471., 3123554., 3146388., 3159520., 2172135., 2181830.,
      2198070., 2207800., 2224145., 2233910., 2250360., 2260160., 1834930.,
      1846780., 1862920., 1874800., 1891030., 1902940., 1919260., 1931200.,
      2153795., 2168110., 2187290., 2201640., 2220925., 2235310., 2254700.,
      2269120., 1493725., 1504250., 1518050., 1528600., 1542475., 1553050.,
      1567000., 1577600.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2017869., 2025562., 2042810., 2050552., 2067947., 2075738., 2093280.,
      2101120., 2169181., 2177658., 2195690., 2204216., 2222395., 2230970.,
      2249296., 2257920., 3833613., 3850714., 3877370., 3894520., 3921323.,
      3938522., 3965472., 3982720., 3984925., 4002810., 4030250., 4048184.,
      4075771., 4093754., 4121488., 4139520.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1949210., 1952420., 1955630., 1958840., 1977320., 1980560., 1983800.,
      1987040., 2005670., 2008940., 2012210., 2015480., 2034260., 2037560.,
      2040860., 2044160., 2490075., 2494310., 2498545., 2502780., 2524550.,
      2528820., 2533090., 2537360., 2559305., 2563610., 2567915., 2572220.,
      2594340., 2598680., 2603020., 2607360., 1871325., 1874650., 1877975.,
      1881300., 1896750., 1900100., 1903450., 1906800., 1922375., 1925750.,
      1929125., 1932500., 1948200., 1951600., 1955000., 1958400., 5054014.,
      5064556., 5075098., 5085640., 5112856., 5123440., 5134024., 5144608.,
      5172034., 5182660., 5193286., 5203912., 5231548., 5242216., 5252884.,
      5263552., 6065465., 6078450., 6091435., 6104420., 6136466., 6149500.,
      6162534., 6175568., 6207859., 6220942., 6234025., 6247108., 6279644.,
      6292776., 6305908., 6319040., 4334575., 4344270., 4353965., 4363660.,
      4386410., 4396140., 4405870., 4415600., 4438525., 4448290., 4458055.,
      4467820., 4490920., 4500720., 4510520., 4520320., 3658010., 3669860.,
      3681710., 3693560., 3713960., 3725840., 3737720., 3749600., 3770150.,
      3782060., 3793970., 3805880., 3826580., 3838520., 3850460., 3862400.,
      4293275., 4307590., 4321905., 4336220., 4360230., 4374580., 4388930.,
      4403280., 4427465., 4441850., 4456235., 4470620., 4494980., 4509400.,
      4523820., 4538240., 2976925., 2987450., 2997975., 3008500., 3025550.,
      3036100., 3046650., 3057200., 3074375., 3084950., 3095525., 3106100.,
      3123400., 3134000., 3144600., 3155200.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4028045., 4035738., 4043431., 4051124., 4077878., 4085620., 4093362.,
      4101104., 4128103., 4135894., 4143685., 4151476., 4178720., 4186560.,
      4194400., 4202240., 4329885., 4338362., 4346839., 4355316., 4382854.,
      4391380., 4399906., 4408432., 4436215., 4444790., 4453365., 4461940.,
      4489968., 4498592., 4507216., 4515840., 7650125., 7667226., 7684327.,
      7701428., 7737590., 7754740., 7771890., 7789040., 7825447., 7842646.,
      7859845., 7877044., 7913696., 7930944., 7948192., 7965440., 7951965.,
      7969850., 7987735., 8005620., 8042566., 8060500., 8078434., 8096368.,
      8133559., 8151542., 8169525., 8187508., 8224944., 8242976., 8261008.,
      8279040.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {30525., 45080.,  49560.,  28650.,
                                         80220., 112504., 117404., 65296.,
                                         59575., 81340.,  83860.,  45030.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {75754., 80654., 144354., 149254.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      60275.,  61050.,  88970.,  90160.,  97790.,  99120.,  56490.,  57300.,
      157885., 160440., 221284., 225008., 230888., 234808., 128282., 130592.,
      116275., 119150., 158550., 162680., 163450., 167720., 87570.,  90060.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {149254., 151508., 158858., 161308.,
                                         283710., 288708., 293314., 298508.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      119775., 120550., 121325., 122100., 176750., 177940., 179130., 180320.,
      194250., 195580., 196910., 198240., 112170., 112980., 113790., 114600.,
      313215., 315770., 318325., 320880., 438844., 442568., 446292., 450016.,
      457856., 461776., 465696., 469616., 254254., 256564., 258874., 261184.,
      229675., 232550., 235425., 238300., 312970., 317100., 321230., 325360.,
      322630., 326900., 331170., 335440., 172650., 175140., 177630., 180120.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      296254., 298508., 300762., 303016., 315266., 317716., 320166., 322616.,
      562422., 567420., 572418., 577416., 581434., 586628., 591822., 597016.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      118925., 122100., 175735., 180320., 193375., 198240., 111780., 114600.,
      313985., 320880., 440167., 450016., 459375., 469616., 255276., 261184.,
      231625., 238300., 315875., 325360., 325675., 335440., 174500., 180120.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {296107., 303016., 315315., 322616.,
                                         565019., 577416., 584227., 597016.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      236325., 237850., 242650., 244200., 349125., 351470., 358260., 360640.,
      384125., 386750., 393820., 396480., 221960., 223560., 227580., 229200.,
      622895., 627970., 636650., 641760., 872935., 880334., 892584., 900032.,
      910959., 918750., 931392., 939232., 505960., 510552., 517748., 522368.,
      457525., 463250., 470850., 476600., 623525., 631750., 642460., 650720.,
      642845., 651350., 662340., 670880., 344040., 349000., 355260., 360240.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      587755.,  592214.,  601524.,  606032.,  625779.,  630630.,
      640332.,  645232.,  1120091., 1130038., 1144836., 1154832.,
      1158115., 1168454., 1183644., 1194032.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      471125.,  472650.,  474175.,  475700.,  483750.,  485300.,  486850.,
      488400.,  695905.,  698250.,  700595.,  702940.,  714140.,  716520.,
      718900.,  721280.,  765625.,  768250.,  770875.,  773500.,  784980.,
      787640.,  790300.,  792960.,  442320.,  443920.,  445520.,  447120.,
      453540.,  455160.,  456780.,  458400.,  1240715., 1245790., 1250865.,
      1255940., 1268190., 1273300., 1278410., 1283520., 1738471., 1745870.,
      1753269., 1760668., 1777720., 1785168., 1792616., 1800064., 1814127.,
      1821918., 1829709., 1837500., 1854944., 1862784., 1870624., 1878464.,
      1007328., 1011920., 1016512., 1021104., 1030876., 1035496., 1040116.,
      1044736., 909325.,  915050.,  920775.,  926500.,  935950.,  941700.,
      947450.,  953200.,  1238825., 1247050., 1255275., 1263500., 1276660.,
      1284920., 1293180., 1301440., 1277185., 1285690., 1294195., 1302700.,
      1316140., 1324680., 1333220., 1341760., 683120.,  688080.,  693040.,
      698000.,  705540.,  710520.,  715500.,  720480.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1171051., 1175510., 1179969., 1184428., 1198540., 1203048., 1207556.,
      1212064., 1246707., 1251558., 1256409., 1261260., 1275764., 1280664.,
      1285564., 1290464., 2230235., 2240182., 2250129., 2260076., 2279676.,
      2289672., 2299668., 2309664., 2305891., 2316230., 2326569., 2336908.,
      2356900., 2367288., 2377676., 2388064.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      469425.,  475700.,  482025.,  488400.,  693875.,  702940.,  712075.,
      721280.,  763875.,  773500.,  783195.,  792960.,  441540.,  447120.,
      452740.,  458400.,  1242255., 1255940., 1269695., 1283520., 1741117.,
      1760668., 1780317., 1800064., 1817165., 1837500., 1857933., 1878464.,
      1009372., 1021104., 1032892., 1044736., 913225.,  926500.,  939825.,
      953200.,  1244635., 1263500., 1282435., 1301440., 1283275., 1302700.,
      1322195., 1341760., 686820.,  698000.,  709220.,  720480.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1170757., 1184428., 1198197., 1212064., 1246805., 1261260.,
      1275813., 1290464., 2235429., 2260076., 2284821., 2309664.,
      2311477., 2336908., 2362437., 2388064.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      935825.,  938850.,  948350.,  951400.,  960975.,  964050.,  973700.,
      976800.,  1383095., 1387750., 1401190., 1405880., 1419425., 1424150.,
      1437800., 1442560., 1522535., 1527750., 1541750., 1547000., 1561105.,
      1566390., 1580600., 1585920., 879900.,  883080.,  891040.,  894240.,
      902260.,  905480.,  913560.,  916800.,  2474395., 2484510., 2501730.,
      2511880., 2529205., 2539390., 2556820., 2567040., 3467485., 3482234.,
      3506538., 3521336., 3545787., 3560634., 3585232., 3600128., 3618797.,
      3634330., 3659418., 3675000., 3700235., 3715866., 3741248., 3756928.,
      2009588., 2018744., 2033024., 2042208., 2056572., 2065784., 2080232.,
      2089472., 1815025., 1826450., 1841550., 1853000., 1868175., 1879650.,
      1894900., 1906400., 2472855., 2489270., 2510550., 2527000., 2548385.,
      2564870., 2586360., 2602880., 2549575., 2566550., 2588390., 2605400.,
      2627345., 2644390., 2666440., 2683520., 1363740., 1373640., 1386080.,
      1396000., 1408500., 1418440., 1431000., 1440960.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2332645., 2341514., 2359938., 2368856., 2387427., 2396394., 2415112.,
      2424128., 2483957., 2493610., 2512818., 2522520., 2541875., 2551626.,
      2571128., 2580928., 4451013., 4470858., 4500258., 4520152., 4549699.,
      4569642., 4599336., 4619328., 4602325., 4622954., 4653138., 4673816.,
      4704147., 4724874., 4755352., 4776128.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x11x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1868625., 1871650., 1874675., 1877700., 1893650., 1896700., 1899750.,
      1902800., 1918875., 1921950., 1925025., 1928100., 1944300., 1947400.,
      1950500., 1953600., 2761535., 2766190., 2770845., 2775500., 2797690.,
      2802380., 2807070., 2811760., 2834125., 2838850., 2843575., 2848300.,
      2870840., 2875600., 2880360., 2885120., 3039855., 3045070., 3050285.,
      3055500., 3078250., 3083500., 3088750., 3094000., 3116925., 3122210.,
      3127495., 3132780., 3155880., 3161200., 3166520., 3171840., 1756620.,
      1759800., 1762980., 1766160., 1778880., 1782080., 1785280., 1788480.,
      1801300., 1804520., 1807740., 1810960., 1823880., 1827120., 1830360.,
      1833600., 4938675., 4948790., 4958905., 4969020., 4993310., 5003460.,
      5013610., 5023760., 5048225., 5058410., 5068595., 5078780., 5103420.,
      5113640., 5123860., 5134080., 6920221., 6934970., 6949719., 6964468.,
      6998278., 7013076., 7027874., 7042672., 7076727., 7091574., 7106421.,
      7121268., 7155568., 7170464., 7185360., 7200256., 7222061., 7237594.,
      7253127., 7268660., 7303254., 7318836., 7334418., 7350000., 7384839.,
      7400470., 7416101., 7431732., 7466816., 7482496., 7498176., 7513856.,
      4010020., 4019176., 4028332., 4037488., 4056864., 4066048., 4075232.,
      4084416., 4103932., 4113144., 4122356., 4131568., 4151224., 4160464.,
      4169704., 4178944., 3618625., 3630050., 3641475., 3652900., 3671650.,
      3683100., 3694550., 3706000., 3724875., 3736350., 3747825., 3759300.,
      3778300., 3789800., 3801300., 3812800., 4929295., 4945710., 4962125.,
      4978540., 5004650., 5021100., 5037550., 5054000., 5080285., 5096770.,
      5113255., 5129740., 5156200., 5172720., 5189240., 5205760., 5082175.,
      5099150., 5116125., 5133100., 5159770., 5176780., 5193790., 5210800.,
      5237645., 5254690., 5271735., 5288780., 5315800., 5332880., 5349960.,
      5367040., 2717580., 2727480., 2737380., 2747280., 2762240., 2772160.,
      2782080., 2792000., 2807060., 2817000., 2826940., 2836880., 2852040.,
      2862000., 2871960., 2881920.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x11x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4656421., 4665290., 4674159., 4683028., 4710958., 4719876., 4728794.,
      4737712., 4765887., 4774854., 4783821., 4792788., 4821208., 4830224.,
      4839240., 4848256., 4958261., 4967914., 4977567., 4987220., 5015934.,
      5025636., 5035338., 5045040., 5073999., 5083750., 5093501., 5103252.,
      5132456., 5142256., 5152056., 5161856., 8882181., 8902026., 8921871.,
      8941716., 8980622., 9000516., 9020410., 9040304., 9079455., 9099398.,
      9119341., 9139284., 9178680., 9198672., 9218664., 9238656., 9184021.,
      9204650., 9225279., 9245908., 9285598., 9306276., 9326954., 9347632.,
      9387567., 9408294., 9429021., 9449748., 9489928., 9510704., 9531480.,
      9552256.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      33790., 49700., 36910., 73640., 103488., 73850., 52350., 71680., 49800.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {60613., 65513., 114513., 119413.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      66665.,  67580.,  97993.,  99400.,  72725.,  73820.,
      144865., 147280., 203448., 206976., 145075., 147700.,
      102150., 104700., 139685., 143360., 96900.,  99600.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {119413., 121226., 129017., 131026.,
                                         225057., 229026., 234661., 238826.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      132415., 133330., 134245., 135160., 194579., 195986., 197393., 198800.,
      144355., 145450., 146545., 147640., 287315., 289730., 292145., 294560.,
      403368., 406896., 410424., 413952., 287525., 290150., 292775., 295400.,
      201750., 204300., 206850., 209400., 275695., 279370., 283045., 286720.,
      191100., 193800., 196500., 199200.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      237013., 238826., 240639., 242452., 256025., 258034., 260043., 262052.,
      446145., 450114., 454083., 458052., 465157., 469322., 473487., 477652.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      131590., 135160., 193634., 198800., 143830., 147640.,
      287945., 294560., 404495., 413952., 288505., 295400.,
      203375., 209400., 278145., 286720., 192975., 199200.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {236425., 242452., 255633., 262052.,
                                         447713., 458052., 466921., 477652.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      261380., 263180., 268490., 270320., 384496., 387268., 394786., 397600.,
      285500., 287660., 293090., 295280., 571095., 575890., 584290., 589120.,
      801983., 808990., 820848., 827904., 571795., 577010., 585550., 590800.,
      401675., 406750., 413700., 418800., 548975., 556290., 566090., 573440.,
      380575., 385950., 393000., 398400.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      469273., 472850., 481278., 484904., 507297., 511266., 520086., 524104.,
      887537., 895426., 908166., 916104., 925561., 933842., 946974., 955304.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      520960.,  522760.,  524560.,  526360.,  535150.,  536980.,  538810.,
      540640.,  766220.,  768992.,  771764.,  774536.,  786758.,  789572.,
      792386.,  795200.,  568840.,  571000.,  573160.,  575320.,  583990.,
      586180.,  588370.,  590560.,  1137395., 1142190., 1146985., 1151780.,
      1163750., 1168580., 1173410., 1178240., 1596959., 1603966., 1610973.,
      1617980., 1634640., 1641696., 1648752., 1655808., 1138375., 1143590.,
      1148805., 1154020., 1165850., 1171100., 1176350., 1181600., 798275.,
      803350.,  808425.,  813500.,  822300.,  827400.,  832500.,  837600.,
      1090635., 1097950., 1105265., 1112580., 1124830., 1132180., 1139530.,
      1146880., 755775.,  761150.,  766525.,  771900.,  780600.,  786000.,
      791400.,  796800.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      934969.,  938546.,  942123.,  945700.,  958930.,  962556.,  966182.,
      969808.,  1010625., 1014594., 1018563., 1022532., 1036154., 1040172.,
      1044190., 1048208., 1767185., 1775074., 1782963., 1790852., 1808394.,
      1816332., 1824270., 1832208., 1842841., 1851122., 1859403., 1867684.,
      1885618., 1893948., 1902278., 1910608.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      519310.,  526360.,  533470.,  540640.,  764330.,  774536.,
      784826.,  795200.,  567790.,  575320.,  582910.,  590560.,
      1138655., 1151780., 1164975., 1178240., 1599213., 1617980.,
      1636845., 1655808., 1140335., 1154020., 1167775., 1181600.,
      801525.,  813500.,  825525.,  837600.,  1095535., 1112580.,
      1129695., 1146880., 759525.,  771900.,  784325.,  796800.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      933793.,  945700.,  957705.,  969808.,  1009841., 1022532.,
      1035321., 1048208., 1770321., 1790852., 1811481., 1832208.,
      1846369., 1867684., 1889097., 1910608.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1035050., 1038620., 1049120., 1052720., 1063310., 1066940., 1077620.,
      1081280., 1523158., 1528660., 1543528., 1549072., 1564066., 1569652.,
      1584772., 1590400., 1131290., 1135580., 1146320., 1150640., 1161470.,
      1165820., 1176740., 1181120., 2267755., 2277310., 2293970., 2303560.,
      2320325., 2329950., 2346820., 2356480., 3184461., 3198426., 3221946.,
      3235960., 3259627., 3273690., 3297504., 3311616., 2270275., 2280670.,
      2297610., 2308040., 2325085., 2335550., 2352700., 2363200., 1592925.,
      1603050., 1616850., 1627000., 1640875., 1651050., 1665000., 1675200.,
      2176475., 2191070., 2210530., 2225160., 2244725., 2259390., 2279060.,
      2293760., 1508325., 1519050., 1533050., 1543800., 1557875., 1568650.,
      1582800., 1593600.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1860481., 1867586., 1884246., 1891400., 1908207., 1915410., 1932364.,
      1939616., 2011793., 2019682., 2037126., 2045064., 2062655., 2070642.,
      2088380., 2096416., 3524913., 3540642., 3565926., 3581704., 3607135.,
      3622962., 3648540., 3664416., 3676225., 3692738., 3718806., 3735368.,
      3761583., 3778194., 3804556., 3821216.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2066530., 2070100., 2073670., 2077240., 2094640., 2098240., 2101840.,
      2105440., 2122990., 2126620., 2130250., 2133880., 2151580., 2155240.,
      2158900., 2162560., 3040814., 3046316., 3051818., 3057320., 3081512.,
      3087056., 3092600., 3098144., 3122546., 3128132., 3133718., 3139304.,
      3163916., 3169544., 3175172., 3180800., 2258290., 2262580., 2266870.,
      2271160., 2288320., 2292640., 2296960., 2301280., 2318590., 2322940.,
      2327290., 2331640., 2349100., 2353480., 2357860., 2362240., 4525955.,
      4535510., 4545065., 4554620., 4578350., 4587940., 4597530., 4607120.,
      4631025., 4640650., 4650275., 4659900., 4683980., 4693640., 4703300.,
      4712960., 6354957., 6368922., 6382887., 6396852., 6429878., 6443892.,
      6457906., 6471920., 6505191., 6519254., 6533317., 6547380., 6580896.,
      6595008., 6609120., 6623232., 4530155., 4540550., 4550945., 4561340.,
      4584790., 4595220., 4605650., 4616080., 4639705., 4650170., 4660635.,
      4671100., 4694900., 4705400., 4715900., 4726400., 3175725., 3185850.,
      3195975., 3206100., 3223550., 3233700., 3243850., 3254000., 3271575.,
      3281750., 3291925., 3302100., 3319800., 3330000., 3340200., 3350400.,
      4338355., 4352950., 4367545., 4382140., 4406430., 4421060., 4435690.,
      4450320., 4474785., 4489450., 4504115., 4518780., 4543420., 4558120.,
      4572820., 4587520., 3005925., 3016650., 3027375., 3038100., 3055350.,
      3066100., 3076850., 3087600., 3104975., 3115750., 3126525., 3137300.,
      3154800., 3165600., 3176400., 3187200.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3713857., 3720962., 3728067., 3735172., 3761338., 3768492., 3775646.,
      3782800., 3809211., 3816414., 3823617., 3830820., 3857476., 3864728.,
      3871980., 3879232., 4015697., 4023586., 4031475., 4039364., 4066314.,
      4074252., 4082190., 4090128., 4117323., 4125310., 4133297., 4141284.,
      4168724., 4176760., 4184796., 4192832., 7034097., 7049826., 7065555.,
      7081284., 7116074., 7131852., 7147630., 7163408., 7198443., 7214270.,
      7230097., 7245924., 7281204., 7297080., 7312956., 7328832., 7335937.,
      7352450., 7368963., 7385476., 7421050., 7437612., 7454174., 7470736.,
      7506555., 7523166., 7539777., 7556388., 7592452., 7609112., 7625772.,
      7642432.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      43899., 54747., 40410., 95095., 113435., 80710., 67010., 78470., 54400.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {65660., 70560., 124460., 129360.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      86592.,  87798.,  107940., 109494., 79620.,  80820.,
      187019., 190190., 222999., 226870., 158550., 161420.,
      130675., 134020., 152915., 156940., 105850., 108800.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {129360., 131320., 138964., 141120.,
                                         244608., 248920., 254212., 258720.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      171978., 173184., 174390., 175596., 214326., 215880., 217434., 218988.,
      158040., 159240., 160440., 161640., 370867., 374038., 377209., 380380.,
      442127., 445998., 449869., 453740., 314230., 317100., 319970., 322840.,
      258005., 261350., 264695., 268040., 301805., 305830., 309855., 313880.,
      208750., 211700., 214650., 217600.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      256760., 258720., 260680., 262640., 275772., 277928., 280084., 282240.,
      484904., 489216., 493528., 497840., 503916., 508424., 512932., 517440.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      171132., 175596., 213528., 218988., 157620., 161640.,
      371938., 380380., 443597., 453740., 315455., 322840.,
      260270., 268040., 304605., 313880., 210875., 217600.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {256319., 262640., 275527., 282240.,
                                         486815., 497840., 506023., 517440.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      339888., 342264., 348780., 351192., 423990., 427056., 434868., 437976.,
      312870., 315240., 320880., 323280., 737576., 743876., 754418., 760760.,
      879501., 887194., 899738., 907480., 625205., 630910., 639940., 645680.,
      513880., 520540., 529390., 536080., 601195., 609210., 619710., 627760.,
      415875., 421750., 429300., 435200.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      508767.,  512638.,  521360.,  525280., 546791., 551054.,
      560168.,  564480.,  965055.,  973630., 987056., 995680.,
      1003079., 1012046., 1025864., 1034880.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      677400.,  679776.,  682152.,  684528.,  695148.,  697560.,  699972.,
      702384.,  844914.,  847980.,  851046.,  854112.,  866628.,  869736.,
      872844.,  875952.,  623370.,  625740.,  628110.,  630480.,  639360.,
      641760.,  644160.,  646560.,  1468852., 1475152., 1481452., 1487752.,
      1502494., 1508836., 1515178., 1521520., 1751309., 1759002., 1766695.,
      1774388., 1791734., 1799476., 1807218., 1814960., 1244705., 1250410.,
      1256115., 1261820., 1274140., 1279880., 1285620., 1291360., 1021100.,
      1027760., 1034420., 1041080., 1052090., 1058780., 1065470., 1072160.,
      1194375., 1202390., 1210405., 1218420., 1231370., 1239420., 1247470.,
      1255520., 825875.,  831750.,  837625.,  843500.,  852700.,  858600.,
      864500.,  870400.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1013663., 1017534., 1021405., 1025276., 1038800., 1042720., 1046640.,
      1050560., 1089319., 1093582., 1097845., 1102108., 1116024., 1120336.,
      1124648., 1128960., 1921535., 1930110., 1938685., 1947260., 1965488.,
      1974112., 1982736., 1991360., 1997191., 2006158., 2015125., 2024092.,
      2042712., 2051728., 2060744., 2069760.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      675708.,  684528.,  693420.,  702384.,  843318.,  854112.,
      864990.,  875952.,  622530.,  630480.,  638490.,  646560.,
      1470994., 1487752., 1504594., 1521520., 1754249., 1774388.,
      1794625., 1814960., 1247155., 1261820., 1276555., 1291360.,
      1025630., 1041080., 1056590., 1072160., 1199975., 1218420.,
      1236935., 1255520., 830125.,  843500.,  856925.,  870400.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1012781., 1025276., 1037869., 1050560., 1088829., 1102108.,
      1115485., 1128960., 1925357., 1947260., 1969261., 1991360.,
      2001405., 2024092., 2046877., 2069760.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1346700., 1351416., 1364304., 1369056., 1382052., 1386840., 1399944.,
      1404768., 1680546., 1686636., 1702092., 1708224., 1723806., 1729980.,
      1745688., 1751904., 1240350., 1245060., 1256220., 1260960., 1272210.,
      1276980., 1288320., 1293120., 2929430., 2941988., 2962904., 2975504.,
      2996546., 3009188., 3030356., 3043040., 3493161., 3508498., 3533390.,
      3548776., 3573815., 3589250., 3614436., 3629920., 2482935., 2494310.,
      2512230., 2523640., 2541665., 2553110., 2571240., 2582720., 2037970.,
      2051260., 2068840., 2082160., 2099830., 2113180., 2130940., 2144320.,
      2383955., 2399950., 2420810., 2436840., 2457805., 2473870., 2494940.,
      2511040., 1648525., 1660250., 1675250., 1687000., 1702075., 1713850.,
      1729000., 1740800.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2017869., 2025562., 2042810., 2050552., 2067947., 2075738., 2093280.,
      2101120., 2169181., 2177658., 2195690., 2204216., 2222395., 2230970.,
      2249296., 2257920., 3833613., 3850714., 3877370., 3894520., 3921323.,
      3938522., 3965472., 3982720., 3984925., 4002810., 4030250., 4048184.,
      4075771., 4093754., 4121488., 4139520.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2688684., 2693400., 2698116., 2702832., 2723856., 2728608., 2733360.,
      2738112., 2759316., 2764104., 2768892., 2773680., 2795064., 2799888.,
      2804712., 2809536., 3355002., 3361092., 3367182., 3373272., 3398052.,
      3404184., 3410316., 3416448., 3441438., 3447612., 3453786., 3459960.,
      3485160., 3491376., 3497592., 3503808., 2475990., 2480700., 2485410.,
      2490120., 2507700., 2512440., 2517180., 2521920., 2539650., 2544420.,
      2549190., 2553960., 2571840., 2576640., 2581440., 2586240., 5846302.,
      5858860., 5871418., 5883976., 5913208., 5925808., 5938408., 5951008.,
      5980450., 5993092., 6005734., 6018376., 6048028., 6060712., 6073396.,
      6086080., 6970985., 6986322., 7001659., 7016996., 7051394., 7066780.,
      7082166., 7097552., 7132195., 7147630., 7163065., 7178500., 7213388.,
      7228872., 7244356., 7259840., 4954495., 4965870., 4977245., 4988620.,
      5013050., 5024460., 5035870., 5047280., 5071885., 5083330., 5094775.,
      5106220., 5131000., 5142480., 5153960., 5165440., 4062650., 4075940.,
      4089230., 4102520., 4124360., 4137680., 4151000., 4164320., 4186310.,
      4199660., 4213010., 4226360., 4248500., 4261880., 4275260., 4288640.,
      4751915., 4767910., 4783905., 4799900., 4825590., 4841620., 4857650.,
      4873680., 4899545., 4915610., 4931675., 4947740., 4973780., 4989880.,
      5005980., 5022080., 3285325., 3297050., 3308775., 3320500., 3338750.,
      3350500., 3362250., 3374000., 3392375., 3404150., 3415925., 3427700.,
      3446200., 3458000., 3469800., 3481600.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4028045., 4035738., 4043431., 4051124., 4077878., 4085620., 4093362.,
      4101104., 4128103., 4135894., 4143685., 4151476., 4178720., 4186560.,
      4194400., 4202240., 4329885., 4338362., 4346839., 4355316., 4382854.,
      4391380., 4399906., 4408432., 4436215., 4444790., 4453365., 4461940.,
      4489968., 4498592., 4507216., 4515840., 7650125., 7667226., 7684327.,
      7701428., 7737590., 7754740., 7771890., 7789040., 7825447., 7842646.,
      7859845., 7877044., 7913696., 7930944., 7948192., 7965440., 7951965.,
      7969850., 7987735., 8005620., 8042566., 8060500., 8078434., 8096368.,
      8133559., 8151542., 8169525., 8187508., 8224944., 8242976., 8261008.,
      8279040.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {42265., 61250.,  66038.,  37670.,
                                         92960., 129654., 134554., 74508.,
                                         66225., 90160.,  92680.,  49650.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {75754., 80654., 144354., 149254.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      83390.,  84530.,  120778., 122500., 130186., 132076., 74200.,  75340.,
      182875., 185920., 254898., 259308., 264502., 269108., 146314., 149016.,
      129225., 132450., 175700., 180320., 180600., 185360., 96530.,  99300.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {149254., 151508., 158858., 161308.,
                                         283710., 288708., 293314., 298508.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      165640., 166780., 167920., 169060., 239834., 241556., 243278., 245000.,
      258482., 260372., 262262., 264152., 147260., 148400., 149540., 150680.,
      362705., 365750., 368795., 371840., 505386., 509796., 514206., 518616.,
      524398., 529004., 533610., 538216., 289926., 292628., 295330., 298032.,
      255225., 258450., 261675., 264900., 346780., 351400., 356020., 360640.,
      356440., 361200., 365960., 370720., 190290., 193060., 195830., 198600.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      296254., 298508., 300762., 303016., 315266., 317716., 320166., 322616.,
      562422., 567420., 572418., 577416., 581434., 586628., 591822., 597016.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      165040., 169060., 239204., 245000., 258020., 264152., 147128., 150680.,
      363965., 371840., 507395., 518616., 526603., 538216., 291340., 298032.,
      257525., 264900., 350175., 360640., 359975., 370720., 192420., 198600.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {296107., 303016., 315315., 322616.,
                                         565019., 577416., 584227., 597016.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      327830.,  330080.,  335840.,  338120.,  475006.,  478408.,  486556.,
      490000.,  512302.,  516040.,  524524.,  528304.,  292000.,  294256.,
      299080.,  301360.,  721875.,  727930.,  737590.,  743680.,  1006019.,
      1014790., 1028412., 1037232., 1044043., 1053206., 1067220., 1076432.,
      577304.,  582680.,  590660.,  596064.,  508625.,  515050.,  523350.,
      529800.,  691145.,  700350.,  712040.,  721280.,  710465.,  719950.,
      731920.,  741440.,  379320.,  384840.,  391660.,  397200.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      587755.,  592214.,  601524.,  606032.,  625779.,  630630.,
      640332.,  645232.,  1120091., 1130038., 1144836., 1154832.,
      1158115., 1168454., 1183644., 1194032.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      653410.,  655660.,  657910.,  660160.,  669400.,  671680.,  673960.,
      676240.,  946610.,  950012.,  953414.,  956816.,  969668.,  973112.,
      976556.,  980000.,  1020866., 1024604., 1028342., 1032080., 1045268.,
      1049048., 1052828., 1056608., 581744.,  584000.,  586256.,  588512.,
      595880.,  598160.,  600440.,  602720.,  1437695., 1443750., 1449805.,
      1455860., 1469090., 1475180., 1481270., 1487360., 2003267., 2012038.,
      2020809., 2029580., 2048004., 2056824., 2065644., 2074464., 2078923.,
      2088086., 2097249., 2106412., 2125228., 2134440., 2143652., 2152864.,
      1149232., 1154608., 1159984., 1165360., 1175916., 1181320., 1186724.,
      1192128., 1010825., 1017250., 1023675., 1030100., 1040250., 1046700.,
      1053150., 1059600., 1373085., 1382290., 1391495., 1400700., 1414840.,
      1424080., 1433320., 1442560., 1411445., 1420930., 1430415., 1439900.,
      1454320., 1463840., 1473360., 1482880., 753120.,  758640.,  764160.,
      769680.,  777780.,  783320.,  788860.,  794400.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1171051., 1175510., 1179969., 1184428., 1198540., 1203048., 1207556.,
      1212064., 1246707., 1251558., 1256409., 1261260., 1275764., 1280664.,
      1285564., 1290464., 2230235., 2240182., 2250129., 2260076., 2279676.,
      2289672., 2299668., 2309664., 2305891., 2316230., 2326569., 2336908.,
      2356900., 2367288., 2377676., 2388064.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      652210.,  660160.,  668170.,  676240.,  945350.,  956816.,  968366.,
      980000.,  1019942., 1032080., 1044302., 1056608., 581480.,  588512.,
      595592.,  602720.,  1440215., 1455860., 1471575., 1487360., 2007285.,
      2029580., 2051973., 2074464., 2083333., 2106412., 2129589., 2152864.,
      1152060., 1165360., 1178716., 1192128., 1015425., 1030100., 1044825.,
      1059600., 1379875., 1400700., 1421595., 1442560., 1418515., 1439900.,
      1461355., 1482880., 757380.,  769680.,  782020.,  794400.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1170757., 1184428., 1198197., 1212064., 1246805., 1261260.,
      1275813., 1290464., 2235429., 2260076., 2284821., 2309664.,
      2311477., 2336908., 2362437., 2388064.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1299950., 1304420., 1315820., 1320320., 1331810., 1336340., 1347920.,
      1352480., 1883938., 1890700., 1906828., 1913632., 1929886., 1936732.,
      1953112., 1960000., 2032450., 2039884., 2056684., 2064160., 2081086.,
      2088604., 2105656., 2113216., 1158472., 1162960., 1172512., 1177024.,
      1186648., 1191184., 1200880., 1205440., 2868355., 2880430., 2899610.,
      2911720., 2931005., 2943150., 2962540., 2974720., 3997077., 4014570.,
      4041618., 4059160., 4086355., 4103946., 4131288., 4148928., 4148389.,
      4166666., 4194498., 4212824., 4240803., 4259178., 4287304., 4305728.,
      2293396., 2304120., 2319968., 2330720., 2346652., 2357432., 2373448.,
      2384256., 2018025., 2030850., 2047350., 2060200., 2076775., 2089650.,
      2106300., 2119200., 2741375., 2759750., 2782990., 2801400., 2824745.,
      2843190., 2866640., 2885120., 2818095., 2837030., 2860830., 2879800.,
      2903705., 2922710., 2946720., 2965760., 1503740., 1514760., 1528320.,
      1539360., 1552980., 1564040., 1577720., 1588800.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2332645., 2341514., 2359938., 2368856., 2387427., 2396394., 2415112.,
      2424128., 2483957., 2493610., 2512818., 2522520., 2541875., 2551626.,
      2571128., 2580928., 4451013., 4470858., 4500258., 4520152., 4549699.,
      4569642., 4599336., 4619328., 4602325., 4622954., 4653138., 4673816.,
      4704147., 4724874., 4755352., 4776128.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x12x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2595430., 2599900., 2604370., 2608840., 2627140., 2631640., 2636140.,
      2640640., 2659090., 2663620., 2668150., 2672680., 2691280., 2695840.,
      2700400., 2704960., 3761114., 3767876., 3774638., 3781400., 3806852.,
      3813656., 3820460., 3827264., 3852926., 3859772., 3866618., 3873464.,
      3899336., 3906224., 3913112., 3920000., 4057466., 4064900., 4072334.,
      4079768., 4105892., 4113368., 4120844., 4128320., 4154654., 4162172.,
      4169690., 4177208., 4203752., 4211312., 4218872., 4226432., 2312456.,
      2316944., 2321432., 2325920., 2340512., 2345024., 2349536., 2354048.,
      2368760., 2373296., 2377832., 2382368., 2397200., 2401760., 2406320.,
      2410880., 5724635., 5736710., 5748785., 5760860., 5787110., 5799220.,
      5811330., 5823440., 5849865., 5862010., 5874155., 5886300., 5912900.,
      5925080., 5937260., 5949440., 7976661., 7994154., 8011647., 8029140.,
      8065694., 8083236., 8100778., 8118320., 8155119., 8172710., 8190301.,
      8207892., 8244936., 8262576., 8280216., 8297856., 8278501., 8296778.,
      8315055., 8333332., 8370670., 8388996., 8407322., 8425648., 8463231.,
      8481606., 8499981., 8518356., 8556184., 8574608., 8593032., 8611456.,
      4576068., 4586792., 4597516., 4608240., 4629184., 4639936., 4650688.,
      4661440., 4682524., 4693304., 4704084., 4714864., 4736088., 4746896.,
      4757704., 4768512., 4023225., 4036050., 4048875., 4061700., 4081850.,
      4094700., 4107550., 4120400., 4140675., 4153550., 4166425., 4179300.,
      4199700., 4212600., 4225500., 4238400., 5464375., 5482750., 5501125.,
      5519500., 5547570., 5565980., 5584390., 5602800., 5631045., 5649490.,
      5667935., 5686380., 5714800., 5733280., 5751760., 5770240., 5617255.,
      5636190., 5655125., 5674060., 5702690., 5721660., 5740630., 5759600.,
      5788405., 5807410., 5826415., 5845420., 5874400., 5893440., 5912480.,
      5931520., 2996460., 3007480., 3018500., 3029520., 3045600., 3056640.,
      3067680., 3078720., 3094900., 3105960., 3117020., 3128080., 3144360.,
      3155440., 3166520., 3177600.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x12x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4656421., 4665290., 4674159., 4683028., 4710958., 4719876., 4728794.,
      4737712., 4765887., 4774854., 4783821., 4792788., 4821208., 4830224.,
      4839240., 4848256., 4958261., 4967914., 4977567., 4987220., 5015934.,
      5025636., 5035338., 5045040., 5073999., 5083750., 5093501., 5103252.,
      5132456., 5142256., 5152056., 5161856., 8882181., 8902026., 8921871.,
      8941716., 8980622., 9000516., 9020410., 9040304., 9079455., 9099398.,
      9119341., 9139284., 9178680., 9198672., 9218664., 9238656., 9184021.,
      9204650., 9225279., 9245908., 9285598., 9306276., 9326954., 9347632.,
      9387567., 9408294., 9429021., 9449748., 9489928., 9510704., 9531480.,
      9552256.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {24525.,  36890., 27925.,  63630.,
                                         90013.,  64610., 103670., 143913.,
                                         101570., 42110., 56602.,  38550.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {60613., 65513., 114513., 119413.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      48425.,  49050.,  72800.,  73780.,  55075.,  55850.,  125230., 127260.,
      177037., 180026., 126980., 129220., 203770., 207340., 282681., 287826.,
      199360., 203140., 81630.,  84220.,  109494., 113204., 74390.,  77100.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {119413., 121226., 129017., 131026.,
                                         225057., 229026., 234661., 238826.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      96225.,  96850.,  97475.,  98100.,  144620., 145600., 146580., 147560.,
      109375., 110150., 110925., 111700., 248430., 250460., 252490., 254520.,
      351085., 354074., 357063., 360052., 251720., 253960., 256200., 258440.,
      403970., 407540., 411110., 414680., 560217., 565362., 570507., 575652.,
      394940., 398720., 402500., 406280., 160670., 163260., 165850., 168440.,
      215278., 218988., 222698., 226408., 146070., 148780., 151490., 154200.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      237013., 238826., 240639., 242452., 256025., 258034., 260043., 262052.,
      446145., 450114., 454083., 458052., 465157., 469322., 473487., 477652.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      95225.,  98100.,  143395., 147560., 108625., 111700., 248675., 254520.,
      351673., 360052., 252315., 258440., 405755., 414680., 562961., 575652.,
      397075., 406280., 162660., 168440., 218204., 226408., 148260., 154200.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {236425., 242452., 255633., 262052.,
                                         447713., 458052., 466921., 477652.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      189225.,  190450.,  194950.,  196200.,  284865., 286790., 293160.,
      295120.,  215725.,  217250.,  221850.,  223400., 493325., 497350.,
      504980.,  509040.,  697417.,  703346.,  714126., 720104., 500185.,
      504630.,  512400.,  516880.,  804405.,  811510., 822220., 829360.,
      1115681., 1125922., 1141014., 1151304., 786625., 794150., 805000.,
      812560.,  320160.,  325320.,  331700.,  336880., 429016., 436408.,
      445396.,  452816.,  291120.,  296520.,  302980., 308400.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      469273., 472850., 481278., 484904., 507297., 511266., 520086., 524104.,
      887537., 895426., 908166., 916104., 925561., 933842., 946974., 955304.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      377225.,  378450.,  379675.,  380900.,  388650.,  389900.,  391150.,
      392400.,  567805.,  569730.,  571655.,  573580.,  584360.,  586320.,
      588280.,  590240.,  429925.,  431450.,  432975.,  434500.,  442150.,
      443700.,  445250.,  446800.,  982625.,  986650.,  990675.,  994700.,
      1005900., 1009960., 1014020., 1018080., 1388905., 1394834., 1400763.,
      1406692., 1422274., 1428252., 1434230., 1440208., 995925.,  1000370.,
      1004815., 1009260., 1020320., 1024800., 1029280., 1033760., 1601705.,
      1608810., 1615915., 1623020., 1637300., 1644440., 1651580., 1658720.,
      2221121., 2231362., 2241603., 2251844., 2271738., 2282028., 2292318.,
      2302608., 1565725., 1573250., 1580775., 1588300., 1602440., 1610000.,
      1617560., 1625120., 635160.,  640320.,  645480.,  650640.,  658220.,
      663400.,  668580.,  673760.,  850640.,  858032.,  865424.,  872816.,
      883372.,  890792.,  898212.,  905632.,  576840.,  582240.,  587640.,
      593040.,  600540.,  605960.,  611380.,  616800.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      934969.,  938546.,  942123.,  945700.,  958930.,  962556.,  966182.,
      969808.,  1010625., 1014594., 1018563., 1022532., 1036154., 1040172.,
      1044190., 1048208., 1767185., 1775074., 1782963., 1790852., 1808394.,
      1816332., 1824270., 1832208., 1842841., 1851122., 1859403., 1867684.,
      1885618., 1893948., 1902278., 1910608.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      375225.,  380900.,  386625.,  392400.,  565355.,  573580.,  581875.,
      590240.,  428425.,  434500.,  440625.,  446800.,  983115.,  994700.,
      1006355., 1018080., 1390081., 1406692., 1423401., 1440208., 997115.,
      1009260., 1021475., 1033760., 1605275., 1623020., 1640835., 1658720.,
      2226609., 2251844., 2277177., 2302608., 1569995., 1588300., 1606675.,
      1625120., 639140.,  650640.,  662180.,  673760.,  856492.,  872816.,
      889196.,  905632.,  581220.,  593040.,  604900.,  616800.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      933793.,  945700.,  957705.,  969808.,  1009841., 1022532.,
      1035321., 1048208., 1770321., 1790852., 1811481., 1832208.,
      1846369., 1867684., 1889097., 1910608.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      748025.,  750450.,  759350.,  761800.,  770775.,  773250.,  782300.,
      784800.,  1126895., 1130710., 1143310., 1147160., 1159865., 1163750.,
      1176560., 1180480., 853825.,  856850.,  865950.,  869000.,  878175.,
      881250.,  890500.,  893600.,  1958215., 1966230., 1981350., 1989400.,
      2004625., 2012710., 2028040., 2036160., 2768353., 2780162., 2801526.,
      2813384., 2834895., 2846802., 2868460., 2880416., 1985375., 1994230.,
      2009630., 2018520., 2034025., 2042950., 2058560., 2067520., 3196375.,
      3210550., 3231830., 3246040., 3267425., 3281670., 3303160., 3317440.,
      4432785., 4453218., 4483206., 4503688., 4533823., 4554354., 4584636.,
      4605216., 3124975., 3139990., 3161550., 3176600., 3198265., 3213350.,
      3235120., 3250240., 1267980., 1278280., 1290960., 1301280., 1314020.,
      1324360., 1337160., 1347520., 1698228., 1712984., 1730848., 1745632.,
      1763580., 1778392., 1796424., 1811264., 1151660., 1162440., 1175280.,
      1186080., 1198980., 1209800., 1222760., 1233600.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1860481., 1867586., 1884246., 1891400., 1908207., 1915410., 1932364.,
      1939616., 2011793., 2019682., 2037126., 2045064., 2062655., 2070642.,
      2088380., 2096416., 3524913., 3540642., 3565926., 3581704., 3607135.,
      3622962., 3648540., 3664416., 3676225., 3692738., 3718806., 3735368.,
      3761583., 3778194., 3804556., 3821216.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1493625., 1496050., 1498475., 1500900., 1516250., 1518700., 1521150.,
      1523600., 1539075., 1541550., 1544025., 1546500., 1562100., 1564600.,
      1567100., 1569600., 2249975., 2253790., 2257605., 2261420., 2282770.,
      2286620., 2290470., 2294320., 2315845., 2319730., 2323615., 2327500.,
      2349200., 2353120., 2357040., 2360960., 1704625., 1707650., 1710675.,
      1713700., 1728850., 1731900., 1734950., 1738000., 1753275., 1756350.,
      1759425., 1762500., 1777900., 1781000., 1784100., 1787200., 3908415.,
      3916430., 3924445., 3932460., 3954650., 3962700., 3970750., 3978800.,
      4001165., 4009250., 4017335., 4025420., 4047960., 4056080., 4064200.,
      4072320., 5524897., 5536706., 5548515., 5560324., 5591194., 5603052.,
      5614910., 5626768., 5657883., 5669790., 5681697., 5693604., 5724964.,
      5736920., 5748876., 5760832., 3961895., 3970750., 3979605., 3988460.,
      4010370., 4019260., 4028150., 4037040., 4059125., 4068050., 4076975.,
      4085900., 4108160., 4117120., 4126080., 4135040., 6378575., 6392750.,
      6406925., 6421100., 6449450., 6463660., 6477870., 6492080., 6520605.,
      6534850., 6549095., 6563340., 6592040., 6606320., 6620600., 6634880.,
      8845137., 8865570., 8886003., 8906436., 8945930., 8966412., 8986894.,
      9007376., 9047115., 9067646., 9088177., 9108708., 9148692., 9169272.,
      9189852., 9210432., 6234935., 6249950., 6264965., 6279980., 6308050.,
      6323100., 6338150., 6353200., 6381445., 6396530., 6411615., 6426700.,
      6455120., 6470240., 6485360., 6500480., 2525660., 2535960., 2546260.,
      2556560., 2571600., 2581920., 2592240., 2602560., 2617700., 2628040.,
      2638380., 2648720., 2663960., 2674320., 2684680., 2695040., 3381700.,
      3396456., 3411212., 3425968., 3446912., 3461696., 3476480., 3491264.,
      3512348., 3527160., 3541972., 3556784., 3578008., 3592848., 3607688.,
      3622528., 2292540., 2303320., 2314100., 2324880., 2339760., 2350560.,
      2361360., 2372160., 2387140., 2397960., 2408780., 2419600., 2434680.,
      2445520., 2456360., 2467200.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3713857., 3720962., 3728067., 3735172., 3761338., 3768492., 3775646.,
      3782800., 3809211., 3816414., 3823617., 3830820., 3857476., 3864728.,
      3871980., 3879232., 4015697., 4023586., 4031475., 4039364., 4066314.,
      4074252., 4082190., 4090128., 4117323., 4125310., 4133297., 4141284.,
      4168724., 4176760., 4184796., 4192832., 7034097., 7049826., 7065555.,
      7081284., 7116074., 7131852., 7147630., 7163408., 7198443., 7214270.,
      7230097., 7245924., 7281204., 7297080., 7312956., 7328832., 7335937.,
      7352450., 7368963., 7385476., 7421050., 7437612., 7454174., 7470736.,
      7506555., 7523166., 7539777., 7556388., 7592452., 7609112., 7625772.,
      7642432.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {31940.,  40740., 30600.,  82243.,
                                         98735.,  70630., 133651., 157535.,
                                         110950., 53530., 61922.,  42100.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {65660., 70560., 124460., 129360.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      63055.,  63880.,  80395.,  81480.,  60350.,  61200.,  161819., 164486.,
      194187., 197470., 138810., 141260., 262619., 267302., 309435., 315070.,
      217770., 221900., 103664., 107060., 119784., 123844., 81240.,  84200.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {129360., 131320., 138964., 141120.,
                                         244608., 248920., 254212., 258720.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      125285., 126110., 126935., 127760., 159705., 160790., 161875., 162960.,
      119850., 120700., 121550., 122400., 320971., 323638., 326305., 328972.,
      385091., 388374., 391657., 394940., 275170., 277620., 280070., 282520.,
      520555., 525238., 529921., 534604., 613235., 618870., 624505., 630140.,
      431410., 435540., 439670., 443800., 203932., 207328., 210724., 214120.,
      235508., 239568., 243628., 247688., 159520., 162480., 165440., 168400.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      256760., 258720., 260680., 262640., 275772., 277928., 280084., 282240.,
      484904., 489216., 493528., 497840., 503916., 508424., 512932., 517440.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      124190., 127760., 158585., 162960., 119175., 122400., 321538., 328972.,
      385973., 394940., 275975., 282520., 523138., 534604., 616469., 630140.,
      433895., 443800., 206632., 214120., 238784., 247688., 161960., 168400.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {256319., 262640., 275527., 282240.,
                                         486815., 497840., 506023., 517440.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      246760.,  248380.,  253870.,  255520.,  315035.,  317170.,  323750.,
      325920.,  236675.,  238350.,  243100.,  244800.,  637784.,  643076.,
      652610.,  657944.,  765429.,  771946.,  783314.,  789880.,  547085.,
      551950.,  560140.,  565040.,  1036952., 1046276., 1059842., 1069208.,
      1221717., 1232938., 1249010., 1260280., 859565.,  867790.,  879340.,
      887600.,  406496.,  413264.,  421448.,  428240.,  469476.,  477568.,
      487256.,  495376.,  318020.,  323920.,  330880.,  336800.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      508767.,  512638.,  521360.,  525280., 546791., 551054.,
      560168.,  564480.,  965055.,  973630., 987056., 995680.,
      1003079., 1012046., 1025864., 1034880.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      491900.,  493520.,  495140.,  496760.,  506090.,  507740.,  509390.,
      511040.,  627935.,  630070.,  632205.,  634340.,  645330.,  647500.,
      649670.,  651840.,  471675.,  473350.,  475025.,  476700.,  484500.,
      486200.,  487900.,  489600.,  1270276., 1275568., 1280860., 1286152.,
      1299886., 1305220., 1310554., 1315888., 1524341., 1530858., 1537375.,
      1543892., 1560062., 1566628., 1573194., 1579760., 1089305., 1094170.,
      1099035., 1103900., 1115380., 1120280., 1125180., 1130080., 2064580.,
      2073904., 2083228., 2092552., 2110318., 2119684., 2129050., 2138416.,
      2432213., 2443434., 2454655., 2465876., 2486750., 2498020., 2509290.,
      2520560., 1710905., 1719130., 1727355., 1735580., 1750420., 1758680.,
      1766940., 1775200., 806224.,  812992.,  819760.,  826528.,  836104.,
      842896.,  849688.,  856480.,  930860.,  938952.,  947044.,  955136.,
      966392.,  974512.,  982632.,  990752.,  630140.,  636040.,  641940.,
      647840.,  655840.,  661760.,  667680.,  673600.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1013663., 1017534., 1021405., 1025276., 1038800., 1042720., 1046640.,
      1050560., 1089319., 1093582., 1097845., 1102108., 1116024., 1120336.,
      1124648., 1128960., 1921535., 1930110., 1938685., 1947260., 1965488.,
      1974112., 1982736., 1991360., 1997191., 2006158., 2015125., 2024092.,
      2042712., 2051728., 2060744., 2069760.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      489710.,  496760.,  503870.,  511040.,  625695.,  634340.,  643055.,
      651840.,  470325.,  476700.,  483125.,  489600.,  1271410., 1286152.,
      1300978., 1315888., 1526105., 1543892., 1561777., 1579760., 1090915.,
      1103900., 1116955., 1130080., 2069746., 2092552., 2115442., 2138416.,
      2438681., 2465876., 2493169., 2520560., 1715875., 1735580., 1755355.,
      1775200., 811624.,  826528.,  841480.,  856480.,  937412.,  955136.,
      972916.,  990752.,  635020.,  647840.,  660700.,  673600.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1012781., 1025276., 1037869., 1050560., 1088829., 1102108.,
      1115485., 1128960., 1925357., 1947260., 1969261., 1991360.,
      2001405., 2024092., 2046877., 2069760.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      976210.,  979420.,  990280.,  993520.,  1004470., 1007740., 1018780.,
      1022080., 1247155., 1251390., 1264410., 1268680., 1281805., 1286110.,
      1299340., 1303680., 937325.,  940650.,  950050.,  953400.,  962875.,
      966250.,  975800.,  979200.,  2532278., 2542820., 2561720., 2572304.,
      2591330., 2601956., 2621108., 2631776., 3039225., 3052210., 3074750.,
      3087784., 3110471., 3123554., 3146388., 3159520., 2172135., 2181830.,
      2198070., 2207800., 2224145., 2233910., 2250360., 2260160., 4120886.,
      4139492., 4166456., 4185104., 4212194., 4230884., 4258100., 4276832.,
      4854969., 4877362., 4909310., 4931752., 4963847., 4986338., 5018580.,
      5041120., 3415335., 3431750., 3454710., 3471160., 3494225., 3510710.,
      3533880., 3550400., 1609736., 1623248., 1639520., 1653056., 1669400.,
      1682960., 1699376., 1712960., 1858668., 1874824., 1894088., 1910272.,
      1929620., 1945832., 1965264., 1981504., 1258260., 1270040., 1283880.,
      1295680., 1309580., 1321400., 1335360., 1347200.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2017869., 2025562., 2042810., 2050552., 2067947., 2075738., 2093280.,
      2101120., 2169181., 2177658., 2195690., 2204216., 2222395., 2230970.,
      2249296., 2257920., 3833613., 3850714., 3877370., 3894520., 3921323.,
      3938522., 3965472., 3982720., 3984925., 4002810., 4030250., 4048184.,
      4075771., 4093754., 4121488., 4139520.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1949210.,  1952420.,  1955630., 1958840., 1977320., 1980560.,  1983800.,
      1987040.,  2005670.,  2008940., 2012210., 2015480., 2034260.,  2037560.,
      2040860.,  2044160.,  2490075., 2494310., 2498545., 2502780.,  2524550.,
      2528820.,  2533090.,  2537360., 2559305., 2563610., 2567915.,  2572220.,
      2594340.,  2598680.,  2603020., 2607360., 1871325., 1874650.,  1877975.,
      1881300.,  1896750.,  1900100., 1903450., 1906800., 1922375.,  1925750.,
      1929125.,  1932500.,  1948200., 1951600., 1955000., 1958400.,  5054014.,
      5064556.,  5075098.,  5085640., 5112856., 5123440., 5134024.,  5144608.,
      5172034.,  5182660.,  5193286., 5203912., 5231548., 5242216.,  5252884.,
      5263552.,  6065465.,  6078450., 6091435., 6104420., 6136466.,  6149500.,
      6162534.,  6175568.,  6207859., 6220942., 6234025., 6247108.,  6279644.,
      6292776.,  6305908.,  6319040., 4334575., 4344270., 4353965.,  4363660.,
      4386410.,  4396140.,  4405870., 4415600., 4438525., 4448290.,  4458055.,
      4467820.,  4490920.,  4500720., 4510520., 4520320., 8223166.,  8241772.,
      8260378.,  8278984.,  8314264., 8332912., 8351560., 8370208.,  8405698.,
      8424388.,  8443078.,  8461768., 8497468., 8516200., 8534932.,  8553664.,
      9687545.,  9709938.,  9732331., 9754724., 9796178., 9818620.,  9841062.,
      9863504.,  9905203.,  9927694., 9950185., 9972676., 10014620., 10037160.,
      10059700., 10082240., 6814255., 6830670., 6847085., 6863500.,  6892970.,
      6909420.,  6925870.,  6942320., 6971965., 6988450., 7004935.,  7021420.,
      7051240.,  7067760.,  7084280., 7100800., 3205960., 3219472.,  3232984.,
      3246496.,  3265504.,  3279040., 3292576., 3306112., 3325240.,  3338800.,
      3352360.,  3365920.,  3385168., 3398752., 3412336., 3425920.,  3701180.,
      3717336.,  3733492.,  3749648., 3771992., 3788176., 3804360.,  3820544.,
      3843028.,  3859240.,  3875452., 3891664., 3914288., 3930528.,  3946768.,
      3963008.,  2504740.,  2516520., 2528300., 2540080., 2555960.,  2567760.,
      2579560.,  2591360.,  2607340., 2619160., 2630980., 2642800.,  2658880.,
      2670720.,  2682560.,  2694400.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4028045., 4035738., 4043431., 4051124., 4077878., 4085620., 4093362.,
      4101104., 4128103., 4135894., 4143685., 4151476., 4178720., 4186560.,
      4194400., 4202240., 4329885., 4338362., 4346839., 4355316., 4382854.,
      4391380., 4399906., 4408432., 4436215., 4444790., 4453365., 4461940.,
      4489968., 4498592., 4507216., 4515840., 7650125., 7667226., 7684327.,
      7701428., 7737590., 7754740., 7771890., 7789040., 7825447., 7842646.,
      7859845., 7877044., 7913696., 7930944., 7948192., 7965440., 7951965.,
      7969850., 7987735., 8005620., 8042566., 8060500., 8078434., 8096368.,
      8133559., 8151542., 8169525., 8187508., 8224944., 8242976., 8261008.,
      8279040.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30525.,  45080.,  49560.,  28650.,  80220., 112504., 117404., 65296.,
      131180., 181104., 186004., 102144., 53330., 71344.,  72968.,  38068.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {75754., 80654., 144354., 149254.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      60275.,  61050.,  88970.,  90160.,  97790.,  99120.,  56490.,  57300.,
      157885., 160440., 221284., 225008., 230888., 234808., 128282., 130592.,
      257845., 262360., 355740., 362208., 365344., 372008., 200410., 204288.,
      103380., 106660., 138012., 142688., 141148., 145936., 73360.,  76136.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {149254., 151508., 158858., 161308.,
                                         283710., 288708., 293314., 298508.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      119775., 120550., 121325., 122100., 176750., 177940., 179130., 180320.,
      194250., 195580., 196910., 198240., 112170., 112980., 113790., 114600.,
      313215., 315770., 318325., 320880., 438844., 442568., 446292., 450016.,
      457856., 461776., 465696., 469616., 254254., 256564., 258874., 261184.,
      511175., 515690., 520205., 524720., 705012., 711480., 717948., 724416.,
      724024., 730688., 737352., 744016., 396942., 400820., 404698., 408576.,
      203480., 206760., 210040., 213320., 271348., 276024., 280700., 285376.,
      277508., 282296., 287084., 291872., 143944., 146720., 149496., 152272.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      296254., 298508., 300762., 303016., 315266., 317716., 320166., 322616.,
      562422., 567420., 572418., 577416., 581434., 586628., 591822., 597016.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      118925., 122100., 175735., 180320., 193375., 198240., 111780., 114600.,
      313985., 320880., 440167., 450016., 459375., 469616., 255276., 261184.,
      513905., 524720., 709079., 724416., 728287., 744016., 399532., 408576.,
      206160., 213320., 275240., 285376., 281512., 291872., 146320., 152272.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {296107., 303016., 315315., 322616.,
                                         565019., 577416., 584227., 597016.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      236325.,  237850.,  242650.,  244200.,  349125.,  351470.,  358260.,
      360640.,  384125.,  386750.,  393820.,  396480.,  221960.,  223560.,
      227580.,  229200.,  622895.,  627970.,  636650.,  641760.,  872935.,
      880334.,  892584.,  900032.,  910959.,  918750.,  931392.,  939232.,
      505960.,  510552.,  517748.,  522368.,  1018815., 1027810., 1040410.,
      1049440., 1405271., 1418158., 1435896., 1448832., 1443295., 1456574.,
      1474704., 1488032., 791336.,  799064.,  809396.,  817152.,  405780.,
      412320.,  420080.,  426640.,  541156.,  550480.,  561400.,  570752.,
      553476.,  563024.,  574168.,  583744.,  287104.,  292640.,  298992.,
      304544.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      587755.,  592214.,  601524.,  606032.,  625779.,  630630.,
      640332.,  645232.,  1120091., 1130038., 1144836., 1154832.,
      1158115., 1168454., 1183644., 1194032.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      471125.,  472650.,  474175.,  475700.,  483750.,  485300.,  486850.,
      488400.,  695905.,  698250.,  700595.,  702940.,  714140.,  716520.,
      718900.,  721280.,  765625.,  768250.,  770875.,  773500.,  784980.,
      787640.,  790300.,  792960.,  442320.,  443920.,  445520.,  447120.,
      453540.,  455160.,  456780.,  458400.,  1240715., 1245790., 1250865.,
      1255940., 1268190., 1273300., 1278410., 1283520., 1738471., 1745870.,
      1753269., 1760668., 1777720., 1785168., 1792616., 1800064., 1814127.,
      1821918., 1829709., 1837500., 1854944., 1862784., 1870624., 1878464.,
      1007328., 1011920., 1016512., 1021104., 1030876., 1035496., 1040116.,
      1044736., 2028635., 2037630., 2046625., 2055620., 2071790., 2080820.,
      2089850., 2098880., 2797655., 2810542., 2823429., 2836316., 2858856.,
      2871792., 2884728., 2897664., 2873311., 2886590., 2899869., 2913148.,
      2936080., 2949408., 2962736., 2976064., 1574944., 1582672., 1590400.,
      1598128., 1611036., 1618792., 1626548., 1634304., 805020.,  811560.,
      818100.,  824640.,  833600.,  840160.,  846720.,  853280.,  1072988.,
      1082312., 1091636., 1100960., 1113448., 1122800., 1132152., 1141504.,
      1097404., 1106952., 1116500., 1126048., 1138760., 1148336., 1157912.,
      1167488., 568672.,  574208.,  579744.,  585280.,  592432.,  597984.,
      603536.,  609088.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1171051., 1175510., 1179969., 1184428., 1198540., 1203048., 1207556.,
      1212064., 1246707., 1251558., 1256409., 1261260., 1275764., 1280664.,
      1285564., 1290464., 2230235., 2240182., 2250129., 2260076., 2279676.,
      2289672., 2299668., 2309664., 2305891., 2316230., 2326569., 2336908.,
      2356900., 2367288., 2377676., 2388064.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      469425.,  475700.,  482025.,  488400.,  693875.,  702940.,  712075.,
      721280.,  763875.,  773500.,  783195.,  792960.,  441540.,  447120.,
      452740.,  458400.,  1242255., 1255940., 1269695., 1283520., 1741117.,
      1760668., 1780317., 1800064., 1817165., 1837500., 1857933., 1878464.,
      1009372., 1021104., 1032892., 1044736., 2034095., 2055620., 2077215.,
      2098880., 2805789., 2836316., 2866941., 2897664., 2881837., 2913148.,
      2944557., 2976064., 1580124., 1598128., 1616188., 1634304., 810380.,
      824640.,  838940.,  853280.,  1080772., 1100960., 1121204., 1141504.,
      1105412., 1126048., 1146740., 1167488., 573424.,  585280.,  597168.,
      609088.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1170757., 1184428., 1198197., 1212064., 1246805., 1261260.,
      1275813., 1290464., 2235429., 2260076., 2284821., 2309664.,
      2311477., 2336908., 2362437., 2388064.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      935825.,  938850.,  948350.,  951400.,  960975.,  964050.,  973700.,
      976800.,  1383095., 1387750., 1401190., 1405880., 1419425., 1424150.,
      1437800., 1442560., 1522535., 1527750., 1541750., 1547000., 1561105.,
      1566390., 1580600., 1585920., 879900.,  883080.,  891040.,  894240.,
      902260.,  905480.,  913560.,  916800.,  2474395., 2484510., 2501730.,
      2511880., 2529205., 2539390., 2556820., 2567040., 3467485., 3482234.,
      3506538., 3521336., 3545787., 3560634., 3585232., 3600128., 3618797.,
      3634330., 3659418., 3675000., 3700235., 3715866., 3741248., 3756928.,
      2009588., 2018744., 2033024., 2042208., 2056572., 2065784., 2080232.,
      2089472., 4050235., 4068190., 4093250., 4111240., 4136405., 4154430.,
      4179700., 4197760., 5585853., 5611578., 5646858., 5672632., 5708059.,
      5733882., 5769456., 5795328., 5737165., 5763674., 5799738., 5826296.,
      5862507., 5889114., 5925472., 5952128., 3144820., 3160248., 3180800.,
      3196256., 3216892., 3232376., 3253096., 3268608., 1607700., 1620760.,
      1636200., 1649280., 1664780., 1677880., 1693440., 1706560., 2142924.,
      2161544., 2183272., 2201920., 2223732., 2242408., 2264304., 2283008.,
      2191756., 2210824., 2233000., 2252096., 2274356., 2293480., 2315824.,
      2334976., 1135792., 1146848., 1159488., 1170560., 1183248., 1194336.,
      1207072., 1218176.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2332645., 2341514., 2359938., 2368856., 2387427., 2396394., 2415112.,
      2424128., 2483957., 2493610., 2512818., 2522520., 2541875., 2551626.,
      2571128., 2580928., 4451013., 4470858., 4500258., 4520152., 4549699.,
      4569642., 4599336., 4619328., 4602325., 4622954., 4653138., 4673816.,
      4704147., 4724874., 4755352., 4776128.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME1x14x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1868625.,  1871650.,  1874675.,  1877700.,  1893650.,  1896700.,
      1899750.,  1902800.,  1918875.,  1921950.,  1925025.,  1928100.,
      1944300.,  1947400.,  1950500.,  1953600.,  2761535.,  2766190.,
      2770845.,  2775500.,  2797690.,  2802380.,  2807070.,  2811760.,
      2834125.,  2838850.,  2843575.,  2848300.,  2870840.,  2875600.,
      2880360.,  2885120.,  3039855.,  3045070.,  3050285.,  3055500.,
      3078250.,  3083500.,  3088750.,  3094000.,  3116925.,  3122210.,
      3127495.,  3132780.,  3155880.,  3161200.,  3166520.,  3171840.,
      1756620.,  1759800.,  1762980.,  1766160.,  1778880.,  1782080.,
      1785280.,  1788480.,  1801300.,  1804520.,  1807740.,  1810960.,
      1823880.,  1827120.,  1830360.,  1833600.,  4938675.,  4948790.,
      4958905.,  4969020.,  4993310.,  5003460.,  5013610.,  5023760.,
      5048225.,  5058410.,  5068595.,  5078780.,  5103420.,  5113640.,
      5123860.,  5134080.,  6920221.,  6934970.,  6949719.,  6964468.,
      6998278.,  7013076.,  7027874.,  7042672.,  7076727.,  7091574.,
      7106421.,  7121268.,  7155568.,  7170464.,  7185360.,  7200256.,
      7222061.,  7237594.,  7253127.,  7268660.,  7303254.,  7318836.,
      7334418.,  7350000.,  7384839.,  7400470.,  7416101.,  7431732.,
      7466816.,  7482496.,  7498176.,  7513856.,  4010020.,  4019176.,
      4028332.,  4037488.,  4056864.,  4066048.,  4075232.,  4084416.,
      4103932.,  4113144.,  4122356.,  4131568.,  4151224.,  4160464.,
      4169704.,  4178944.,  8082515.,  8100470.,  8118425.,  8136380.,
      8168510.,  8186500.,  8204490.,  8222480.,  8254785.,  8272810.,
      8290835.,  8308860.,  8341340.,  8359400.,  8377460.,  8395520.,
      11145981., 11171706., 11197431., 11223156., 11267942., 11293716.,
      11319490., 11345264., 11390295., 11416118., 11441941., 11467764.,
      11513040., 11538912., 11564784., 11590656., 11447821., 11474330.,
      11500839., 11527348., 11572918., 11599476., 11626034., 11652592.,
      11698407., 11725014., 11751621., 11778228., 11824288., 11850944.,
      11877600., 11904256., 6274212.,  6289640.,  6305068.,  6320496.,
      6346144.,  6361600.,  6377056.,  6392512.,  6418300.,  6433784.,
      6449268.,  6464752.,  6490680.,  6506192.,  6521704.,  6537216.,
      3202340.,  3215400.,  3228460.,  3241520.,  3259320.,  3272400.,
      3285480.,  3298560.,  3316460.,  3329560.,  3342660.,  3355760.,
      3373760.,  3386880.,  3400000.,  3413120.,  4267228.,  4285848.,
      4304468.,  4323088.,  4347896.,  4366544.,  4385192.,  4403840.,
      4428788.,  4447464.,  4466140.,  4484816.,  4509904.,  4528608.,
      4547312.,  4566016.,  4364444.,  4383512.,  4402580.,  4421648.,
      4446904.,  4466000.,  4485096.,  4504192.,  4529588.,  4548712.,
      4567836.,  4586960.,  4612496.,  4631648.,  4650800.,  4669952.,
      2260528.,  2271584.,  2282640.,  2293696.,  2307904.,  2318976.,
      2330048.,  2341120.,  2355408.,  2366496.,  2377584.,  2388672.,
      2403040.,  2414144.,  2425248.,  2436352.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID1x14x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4656421., 4665290., 4674159., 4683028., 4710958., 4719876., 4728794.,
      4737712., 4765887., 4774854., 4783821., 4792788., 4821208., 4830224.,
      4839240., 4848256., 4958261., 4967914., 4977567., 4987220., 5015934.,
      5025636., 5035338., 5045040., 5073999., 5083750., 5093501., 5103252.,
      5132456., 5142256., 5152056., 5161856., 8882181., 8902026., 8921871.,
      8941716., 8980622., 9000516., 9020410., 9040304., 9079455., 9099398.,
      9119341., 9139284., 9178680., 9198672., 9218664., 9238656., 9184021.,
      9204650., 9225279., 9245908., 9285598., 9306276., 9326954., 9347632.,
      9387567., 9408294., 9429021., 9449748., 9489928., 9510704., 9531480.,
      9552256.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      24525.,  36890.,  27925.,  63630.,  90013.,  64610.,  47125.,
      64750.,  45125.,  124350., 172410., 121700., 173740., 238238.,
      166250., 104600., 140980., 96550.,  224175., 307930., 215475.,
      283850., 386463., 267890., 162075., 217210., 147975.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {60613.,  65513.,  114513., 119413.,
                                         208838., 213738., 262738., 267638.,
                                         357063., 361963., 410963., 415863.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      48425.,  49050.,  72800.,  73780.,  55075.,  55850.,  125230., 127260.,
      177037., 180026., 126980., 129220., 91975.,  94250.,  126210., 129500.,
      87825.,  90250.,  245050., 248700., 339605., 344820., 239600., 243400.,
      341215., 347480., 467558., 476476., 326025., 332500., 203900., 209200.,
      274435., 281960., 187650., 193100., 441675., 448350., 606410., 615860.,
      424125., 430950., 557200., 567700., 758079., 772926., 525070., 535780.,
      315825., 324150., 422660., 434420., 287475., 295950.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      119413., 121226., 129017., 131026., 225057., 229026., 234661., 238826.,
      409934., 417676., 419538., 427476., 515578., 525476., 525182., 535276.,
      700455., 714126., 710059., 723926., 806099., 821926., 815703., 831726.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      96225.,   96850.,   97475.,   98100.,   144620.,  145600.,  146580.,
      147560.,  109375.,  110150.,  110925.,  111700.,  248430.,  250460.,
      252490.,  254520.,  351085.,  354074.,  357063.,  360052.,  251720.,
      253960.,  256200.,  258440.,  181675.,  183950.,  186225.,  188500.,
      249130.,  252420.,  255710.,  259000.,  173225.,  175650.,  178075.,
      180500.,  486450.,  490100.,  493750.,  497400.,  673995.,  679210.,
      684425.,  689640.,  475400.,  479200.,  483000.,  486800.,  676165.,
      682430.,  688695.,  694960.,  926198.,  935116.,  944034.,  952952.,
      645575.,  652050.,  658525.,  665000.,  402500.,  407800.,  413100.,
      418400.,  541345.,  548870.,  556395.,  563920.,  369850.,  375300.,
      380750.,  386200.,  876675.,  883350.,  890025.,  896700.,  1203370.,
      1212820., 1222270., 1231720., 841425.,  848250.,  855075.,  861900.,
      1103900., 1114400., 1124900., 1135400., 1501311., 1516158., 1531005.,
      1545852., 1039430., 1050140., 1060850., 1071560., 623325.,  631650.,
      639975.,  648300.,  833560.,  845320.,  857080.,  868840.,  566475.,
      574950.,  583425.,  591900.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      237013.,  238826.,  240639.,  242452.,  256025.,  258034.,  260043.,
      262052.,  446145.,  450114.,  454083.,  458052.,  465157.,  469322.,
      473487.,  477652.,  812126.,  819868.,  827610.,  835352.,  831138.,
      839076.,  847014.,  854952.,  1021258., 1031156., 1041054., 1050952.,
      1040270., 1050364., 1060458., 1070552., 1387239., 1400910., 1414581.,
      1428252., 1406251., 1420118., 1433985., 1447852., 1596371., 1612198.,
      1628025., 1643852., 1615383., 1631406., 1647429., 1663452.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      95225.,   98100.,   143395.,  147560.,  108625.,  111700.,  248675.,
      254520.,  351673.,  360052.,  252315.,  258440.,  183025.,  188500.,
      251195.,  259000.,  174825.,  180500.,  488475.,  497400.,  677005.,
      689640.,  477675.,  486800.,  680645.,  694960.,  932715.,  952952.,
      650405.,  665000.,  406875.,  418400.,  547645.,  563920.,  374475.,
      386200.,  881725.,  896700.,  1210615., 1231720., 846725.,  861900.,
      1112615., 1135400., 1513757., 1545852., 1048495., 1071560., 630725.,
      648300.,  844095.,  868840.,  574125.,  591900.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      236425.,  242452.,  255633.,  262052.,  447713.,  458052.,
      466921.,  477652.,  817467.,  835352.,  836675.,  854952.,
      1028755., 1050952., 1047963., 1070552., 1398509., 1428252.,
      1417717., 1447852., 1609797., 1643852., 1629005., 1663452.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      189225.,  190450.,  194950.,  196200.,  284865.,  286790.,  293160.,
      295120.,  215725.,  217250.,  221850.,  223400.,  493325.,  497350.,
      504980.,  509040.,  697417.,  703346.,  714126.,  720104.,  500185.,
      504630.,  512400.,  516880.,  361525.,  366050.,  372450.,  377000.,
      495845.,  502390.,  511420.,  518000.,  344825.,  349650.,  356150.,
      361000.,  969675.,  976950.,  987500.,  994800.,  1343615., 1354010.,
      1368850., 1379280., 947775.,  955350.,  966000.,  973600.,  1348795.,
      1361290., 1377390., 1389920., 1847643., 1865430., 1888068., 1905904.,
      1287895., 1300810., 1317050., 1330000., 803175.,  813750.,  826200.,
      836800.,  1080275., 1095290., 1112790., 1127840., 738075.,  748950.,
      761500.,  772400.,  1750125., 1763450., 1780050., 1793400., 2402365.,
      2421230., 2444540., 2463440., 1679825., 1693450., 1710150., 1723800.,
      2204265., 2225230., 2249800., 2270800., 2997869., 3027514., 3062010.,
      3091704., 2075605., 2096990., 2121700., 2143120., 1244825., 1261450.,
      1279950., 1296600., 1664705., 1688190., 1714160., 1737680., 1131325.,
      1148250., 1166850., 1183800.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      469273.,  472850.,  481278.,  484904.,  507297.,  511266.,  520086.,
      524104.,  887537.,  895426.,  908166.,  916104.,  925561.,  933842.,
      946974.,  955304.,  1619499., 1634934., 1655220., 1670704., 1657523.,
      1673350., 1694028., 1709904., 2037763., 2057510., 2082108., 2101904.,
      2075787., 2095926., 2120916., 2141104., 2769725., 2797018., 2829162.,
      2856504., 2807749., 2835434., 2867970., 2895704., 3187989., 3219594.,
      3256050., 3287704., 3226013., 3258010., 3294858., 3326904.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      377225.,  378450.,  379675.,  380900.,  388650.,  389900.,  391150.,
      392400.,  567805.,  569730.,  571655.,  573580.,  584360.,  586320.,
      588280.,  590240.,  429925.,  431450.,  432975.,  434500.,  442150.,
      443700.,  445250.,  446800.,  982625.,  986650.,  990675.,  994700.,
      1005900., 1009960., 1014020., 1018080., 1388905., 1394834., 1400763.,
      1406692., 1422274., 1428252., 1434230., 1440208., 995925.,  1000370.,
      1004815., 1009260., 1020320., 1024800., 1029280., 1033760., 718525.,
      723050.,  727575.,  732100.,  740350.,  744900.,  749450.,  754000.,
      985145.,  991690.,  998235.,  1004780., 1016260., 1022840., 1029420.,
      1036000., 684825.,  689650.,  694475.,  699300.,  707450.,  712300.,
      717150.,  722000.,  1932075., 1939350., 1946625., 1953900., 1967700.,
      1975000., 1982300., 1989600., 2676835., 2687230., 2697625., 2708020.,
      2727270., 2737700., 2748130., 2758560., 1887975., 1895550., 1903125.,
      1910700., 1924400., 1932000., 1939600., 1947200., 2685095., 2697590.,
      2710085., 2722580., 2742250., 2754780., 2767310., 2779840., 3677499.,
      3695286., 3713073., 3730860., 3758300., 3776136., 3793972., 3811808.,
      2562875., 2575790., 2588705., 2601620., 2621150., 2634100., 2647050.,
      2660000., 1595775., 1606350., 1616925., 1627500., 1641800., 1652400.,
      1663000., 1673600., 2145535., 2160550., 2175565., 2190580., 2210530.,
      2225580., 2240630., 2255680., 1465275., 1476150., 1487025., 1497900.,
      1512100., 1523000., 1533900., 1544800., 3486925., 3500250., 3513575.,
      3526900., 3546750., 3560100., 3573450., 3586800., 4785865., 4804730.,
      4823595., 4842460., 4870180., 4889080., 4907980., 4926880., 3346025.,
      3359650., 3373275., 3386900., 3406650., 3420300., 3433950., 3447600.,
      4387565., 4408530., 4429495., 4450460., 4478600., 4499600., 4520600.,
      4541600., 5966093., 5995738., 6025383., 6055028., 6094326., 6124020.,
      6153714., 6183408., 4129825., 4151210., 4172595., 4193980., 4221980.,
      4243400., 4264820., 4286240., 2473025., 2489650., 2506275., 2522900.,
      2543250., 2559900., 2576550., 2593200., 3305925., 3329410., 3352895.,
      3376380., 3404800., 3428320., 3451840., 3475360., 2245725., 2262650.,
      2279575., 2296500., 2316750., 2333700., 2350650., 2367600.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      934969.,  938546.,  942123.,  945700.,  958930.,  962556.,  966182.,
      969808.,  1010625., 1014594., 1018563., 1022532., 1036154., 1040172.,
      1044190., 1048208., 1767185., 1775074., 1782963., 1790852., 1808394.,
      1816332., 1824270., 1832208., 1842841., 1851122., 1859403., 1867684.,
      1885618., 1893948., 1902278., 1910608., 3223563., 3238998., 3254433.,
      3269868., 3294956., 3310440., 3325924., 3341408., 3299219., 3315046.,
      3330873., 3346700., 3372180., 3388056., 3403932., 3419808., 4055779.,
      4075526., 4095273., 4115020., 4144420., 4164216., 4184012., 4203808.,
      4131435., 4151574., 4171713., 4191852., 4221644., 4241832., 4262020.,
      4282208., 5512157., 5539450., 5566743., 5594036., 5630982., 5658324.,
      5685666., 5713008., 5587813., 5615498., 5643183., 5670868., 5708206.,
      5735940., 5763674., 5791408., 6344373., 6375978., 6407583., 6439188.,
      6480446., 6512100., 6543754., 6575408., 6420029., 6452026., 6484023.,
      6516020., 6557670., 6589716., 6621762., 6653808.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      375225.,  380900.,  386625.,  392400.,  565355.,  573580.,  581875.,
      590240.,  428425.,  434500.,  440625.,  446800.,  983115.,  994700.,
      1006355., 1018080., 1390081., 1406692., 1423401., 1440208., 997115.,
      1009260., 1021475., 1033760., 721225.,  732100.,  743025.,  754000.,
      989275.,  1004780., 1020355., 1036000., 688025.,  699300.,  710625.,
      722000.,  1936125., 1953900., 1971725., 1989600., 2682855., 2708020.,
      2733255., 2758560., 1892525., 1910700., 1928925., 1947200., 2694055.,
      2722580., 2751175., 2779840., 3690533., 3730860., 3771285., 3811808.,
      2572535., 2601620., 2630775., 2660000., 1604525., 1627500., 1650525.,
      1673600., 2158135., 2190580., 2223095., 2255680., 1474525., 1497900.,
      1521325., 1544800., 3497025., 3526900., 3556825., 3586800., 4800355.,
      4842460., 4884635., 4926880., 3356625., 3386900., 3417225., 3447600.,
      4404995., 4450460., 4495995., 4541600., 5990985., 6055028., 6119169.,
      6183408., 4147955., 4193980., 4240075., 4286240., 2487825., 2522900.,
      2558025., 2593200., 3326995., 3376380., 3425835., 3475360., 2261025.,
      2296500., 2332025., 2367600.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      933793.,  945700.,  957705.,  969808.,  1009841., 1022532., 1035321.,
      1048208., 1770321., 1790852., 1811481., 1832208., 1846369., 1867684.,
      1889097., 1910608., 3234245., 3269868., 3305589., 3341408., 3310293.,
      3346700., 3383205., 3419808., 4070773., 4115020., 4159365., 4203808.,
      4146821., 4191852., 4236981., 4282208., 5534697., 5594036., 5653473.,
      5713008., 5610745., 5670868., 5731089., 5791408., 6371225., 6439188.,
      6507249., 6575408., 6447273., 6516020., 6584865., 6653808.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      748025.,   750450.,   759350.,   761800.,   770775.,   773250.,
      782300.,   784800.,   1126895.,  1130710.,  1143310.,  1147160.,
      1159865.,  1163750.,  1176560.,  1180480.,  853825.,   856850.,
      865950.,   869000.,   878175.,   881250.,   890500.,   893600.,
      1958215.,  1966230.,  1981350.,  1989400.,  2004625.,  2012710.,
      2028040.,  2036160.,  2768353.,  2780162.,  2801526.,  2813384.,
      2834895.,  2846802.,  2868460.,  2880416.,  1985375.,  1994230.,
      2009630.,  2018520.,  2034025.,  2042950.,  2058560.,  2067520.,
      1433425.,  1442450.,  1455150.,  1464200.,  1476975.,  1486050.,
      1498900.,  1508000.,  1965495.,  1978550.,  1996470.,  2009560.,
      2027585.,  2040710.,  2058840.,  2072000.,  1366425.,  1376050.,
      1388950.,  1398600.,  1411575.,  1421250.,  1434300.,  1444000.,
      3857725.,  3872250.,  3893250.,  3907800.,  3928875.,  3943450.,
      3964600.,  3979200.,  5344955.,  5365710.,  5395250.,  5416040.,
      5445685.,  5466510.,  5496260.,  5517120.,  3769925.,  3785050.,
      3806250.,  3821400.,  3842675.,  3857850.,  3879200.,  3894400.,
      5363155.,  5388110.,  5420170.,  5445160.,  5477325.,  5502350.,
      5534620.,  5559680.,  7345541.,  7381066.,  7426146.,  7461720.,
      7506947.,  7542570.,  7587944.,  7623616.,  5119275.,  5145070.,
      5177410.,  5203240.,  5235685.,  5261550.,  5294100.,  5320000.,
      3187925.,  3209050.,  3233850.,  3255000.,  3279875.,  3301050.,
      3326000.,  3347200.,  4286275.,  4316270.,  4351130.,  4381160.,
      4416125.,  4446190.,  4481260.,  4511360.,  2927325.,  2949050.,
      2974050.,  2995800.,  3020875.,  3042650.,  3067800.,  3089600.,
      6967425.,  6994050.,  7027150.,  7053800.,  7086975.,  7113650.,
      7146900.,  7173600.,  9563015.,  9600710.,  9647190.,  9684920.,
      9731505.,  9769270.,  9815960.,  9853760.,  6686025.,  6713250.,
      6746550.,  6773800.,  6807175.,  6834450.,  6867900.,  6895200.,
      8768095.,  8809990.,  8858990.,  8900920.,  8950025.,  8991990.,
      9041200.,  9083200.,  11922729., 11981970., 12050766., 12110056.,
      12178999., 12238338., 12307428., 12366816., 8253175.,  8295910.,
      8345190.,  8387960.,  8437345.,  8480150.,  8529640.,  8572480.,
      4942425.,  4975650.,  5012550.,  5045800.,  5082775.,  5116050.,
      5153100.,  5186400.,  6607055.,  6653990.,  6705790.,  6752760.,
      6804665.,  6851670.,  6903680.,  6950720.,  4488225.,  4522050.,
      4559150.,  4593000.,  4630175.,  4664050.,  4701300.,  4735200.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1860481.,  1867586.,  1884246.,  1891400.,  1908207.,  1915410.,
      1932364.,  1939616.,  2011793.,  2019682.,  2037126.,  2045064.,
      2062655.,  2070642.,  2088380.,  2096416.,  3524913.,  3540642.,
      3565926.,  3581704.,  3607135.,  3622962.,  3648540.,  3664416.,
      3676225.,  3692738.,  3718806.,  3735368.,  3761583.,  3778194.,
      3804556.,  3821216.,  6437669.,  6468490.,  6508866.,  6539736.,
      6580259.,  6611178.,  6651848.,  6682816.,  6588981.,  6620586.,
      6661746.,  6693400.,  6734707.,  6766410.,  6807864.,  6839616.,
      8102101.,  8141546.,  8190546.,  8230040.,  8279187.,  8318730.,
      8368024.,  8407616.,  8253413.,  8293642.,  8343426.,  8383704.,
      8433635.,  8473962.,  8524040.,  8564416.,  11014857., 11069394.,
      11133486., 11188072., 11252311., 11306946., 11371332., 11426016.,
      11166169., 11221490., 11286366., 11341736., 11406759., 11462178.,
      11527348., 11582816., 12679289., 12742450., 12815166., 12878376.,
      12951239., 13014498., 13087508., 13150816., 12830601., 12894546.,
      12968046., 13032040., 13105687., 13169730., 13243524., 13307616.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1493625.,  1496050.,  1498475.,  1500900.,  1516250.,  1518700.,
      1521150.,  1523600.,  1539075.,  1541550.,  1544025.,  1546500.,
      1562100.,  1564600.,  1567100.,  1569600.,  2249975.,  2253790.,
      2257605.,  2261420.,  2282770.,  2286620.,  2290470.,  2294320.,
      2315845.,  2319730.,  2323615.,  2327500.,  2349200.,  2353120.,
      2357040.,  2360960.,  1704625.,  1707650.,  1710675.,  1713700.,
      1728850.,  1731900.,  1734950.,  1738000.,  1753275.,  1756350.,
      1759425.,  1762500.,  1777900.,  1781000.,  1784100.,  1787200.,
      3908415.,  3916430.,  3924445.,  3932460.,  3954650.,  3962700.,
      3970750.,  3978800.,  4001165.,  4009250.,  4017335.,  4025420.,
      4047960.,  4056080.,  4064200.,  4072320.,  5524897.,  5536706.,
      5548515.,  5560324.,  5591194.,  5603052.,  5614910.,  5626768.,
      5657883.,  5669790.,  5681697.,  5693604.,  5724964.,  5736920.,
      5748876.,  5760832.,  3961895.,  3970750.,  3979605.,  3988460.,
      4010370.,  4019260.,  4028150.,  4037040.,  4059125.,  4068050.,
      4076975.,  4085900.,  4108160.,  4117120.,  4126080.,  4135040.,
      2857825.,  2866850.,  2875875.,  2884900.,  2901250.,  2910300.,
      2919350.,  2928400.,  2944875.,  2953950.,  2963025.,  2972100.,
      2988700.,  2997800.,  3006900.,  3016000.,  3917935.,  3930990.,
      3944045.,  3957100.,  3979850.,  3992940.,  4006030.,  4019120.,
      4042045.,  4055170.,  4068295.,  4081420.,  4104520.,  4117680.,
      4130840.,  4144000.,  2723225.,  2732850.,  2742475.,  2752100.,
      2768250.,  2777900.,  2787550.,  2797200.,  2813475.,  2823150.,
      2832825.,  2842500.,  2858900.,  2868600.,  2878300.,  2888000.,
      7700925.,  7715450.,  7729975.,  7744500.,  7771950.,  7786500.,
      7801050.,  7815600.,  7843175.,  7857750.,  7872325.,  7886900.,
      7914600.,  7929200.,  7943800.,  7958400.,  10669155., 10689910.,
      10710665., 10731420., 10769710., 10790500., 10811290., 10832080.,
      10870545., 10891370., 10912195., 10933020., 10971660., 10992520.,
      11013380., 11034240., 7524725.,  7539850.,  7554975.,  7570100.,
      7597350.,  7612500.,  7627650.,  7642800.,  7670175.,  7685350.,
      7700525.,  7715700.,  7743200.,  7758400.,  7773600.,  7788800.,
      10701355., 10726310., 10751265., 10776220., 10815350., 10840340.,
      10865330., 10890320., 10929625., 10954650., 10979675., 11004700.,
      11044180., 11069240., 11094300., 11119360., 14655557., 14691082.,
      14726607., 14762132., 14816718., 14852292., 14887866., 14923440.,
      14978271., 15013894., 15049517., 15085140., 15140216., 15175888.,
      15211560., 15247232., 10212755., 10238550., 10264345., 10290140.,
      10328990., 10354820., 10380650., 10406480., 10445505., 10471370.,
      10497235., 10523100., 10562300., 10588200., 10614100., 10640000.,
      6354725.,  6375850.,  6396975.,  6418100.,  6446550.,  6467700.,
      6488850.,  6510000.,  6538575.,  6559750.,  6580925.,  6602100.,
      6630800.,  6652000.,  6673200.,  6694400.,  8542555.,  8572550.,
      8602545.,  8632540.,  8672230.,  8702260.,  8732290.,  8762320.,
      8802185.,  8832250.,  8862315.,  8892380.,  8932420.,  8962520.,
      8992620.,  9022720.,  5832925.,  5854650.,  5876375.,  5898100.,
      5926350.,  5948100.,  5969850.,  5991600.,  6019975.,  6041750.,
      6063525.,  6085300.,  6113800.,  6135600.,  6157400.,  6179200.,
      3437825.,  3447042.,  3456259.,  3465476.,  3487618.,  3496860.,
      3506102.,  3515344.,  3537611.,  3546878.,  3556145.,  3565412.,
      3587804.,  3597096.,  3606388.,  3615680.,  3577807.,  3587854.,
      3597901.,  3607948.,  3635530.,  3645612.,  3655694.,  3665776.,
      3693533.,  3703650.,  3713767.,  3723884.,  3751816.,  3761968.,
      3772120.,  3782272.,  2347065.,  2353810.,  2360555.,  2367300.,
      2386170.,  2392940.,  2399710.,  2406480.,  2425475.,  2432270.,
      2439065.,  2445860.,  2464980.,  2471800.,  2478620.,  2485440.,
      3122455.,  3128510.,  3134565.,  3140620.,  3160850.,  3166940.,
      3173030.,  3179120.,  3199525.,  3205650.,  3211775.,  3217900.,
      3238480.,  3244640.,  3250800.,  3256960.,  4468457.,  4477522.,
      4486587.,  4495652.,  4523778.,  4532892.,  4542006.,  4551120.,
      4579491.,  4588654.,  4597817.,  4606980.,  4635596.,  4644808.,
      4654020.,  4663232.,  3238655.,  3245550.,  3252445.,  3259340.,
      3279290.,  3286220.,  3293150.,  3300080.,  3320205.,  3327170.,
      3334135.,  3341100.,  3361400.,  3368400.,  3375400.,  3382400.,
      2453225.,  2460850.,  2468475.,  2476100.,  2491050.,  2498700.,
      2506350.,  2514000.,  2529075.,  2536750.,  2544425.,  2552100.,
      2567300.,  2575000.,  2582700.,  2590400.,  3382855.,  3393950.,
      3405045.,  3416140.,  3436930.,  3448060.,  3459190.,  3470320.,
      3491285.,  3502450.,  3513615.,  3524780.,  3545920.,  3557120.,
      3568320.,  3579520.,  2363425.,  2371650.,  2379875.,  2388100.,
      2402850.,  2411100.,  2419350.,  2427600.,  2442475.,  2450750.,
      2459025.,  2467300.,  2482300.,  2490600.,  2498900.,  2507200.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1583425., 1590530., 1597635., 1604740., 1622202., 1629356., 1636510.,
      1643664., 1661371., 1668574., 1675777., 1682980., 1700932., 1708184.,
      1715436., 1722688., 1746001., 1753890., 1761779., 1769668., 1787914.,
      1795852., 1803790., 1811728., 1830219., 1838206., 1846193., 1854180.,
      1872916., 1880952., 1888988., 1897024., 3371761., 3387490., 3403219.,
      3418948., 3445034., 3460812., 3476590., 3492368., 3518699., 3534526.,
      3550353., 3566180., 3592756., 3608632., 3624508., 3640384., 3534337.,
      3550850., 3567363., 3583876., 3610746., 3627308., 3643870., 3660432.,
      3687547., 3704158., 3720769., 3737380., 3764740., 3781400., 3798060.,
      3814720., 1474533., 1483850., 1493167., 1502484., 1522158., 1531524.,
      1540890., 1550256., 1570175., 1579590., 1589005., 1598420., 1618584.,
      1628048., 1637512., 1646976., 1487605., 1495658., 1503711., 1511764.,
      1530174., 1538276., 1546378., 1554480., 1573135., 1581286., 1589437.,
      1597588., 1616488., 1624688., 1632888., 1641088., 3087253., 3101610.,
      3115967., 3130324., 3155038., 3169444., 3183850., 3198256., 3223215.,
      3237670., 3252125., 3266580., 3291784., 3306288., 3320792., 3335296.,
      3249829., 3264970., 3280111., 3295252., 3320750., 3335940., 3351130.,
      3366320., 3392063., 3407302., 3422541., 3437780., 3463768., 3479056.,
      3494344., 3509632., 1388169., 1397650., 1407131., 1416612., 1436450.,
      1445980., 1455510., 1465040., 1485123., 1494702., 1504281., 1513860.,
      1534188., 1543816., 1553444., 1563072., 1352601., 1361330., 1370059.,
      1378788., 1397874., 1406652., 1415430., 1424208., 1443539., 1452366.,
      1461193., 1470020., 1489596., 1498472., 1507348., 1516224., 2802745.,
      2815730., 2828715., 2841700., 2865042., 2878076., 2891110., 2904144.,
      2927731., 2940814., 2953897., 2966980., 2990812., 3003944., 3017076.,
      3030208., 2965321., 2979090., 2992859., 3006628., 3030754., 3044572.,
      3058390., 3072208., 3096579., 3110446., 3124313., 3138180., 3162796.,
      3176712., 3190628., 3204544.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      31940.,  40740.,  30600.,  82243.,  98735.,  70630.,  60350.,
      70910.,  49300.,  160640., 188580., 132900., 223615., 260435.,
      181510., 133610., 154070., 105400., 289340., 336420., 235200.,
      364987., 422135., 292390., 206870., 237230., 161500.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {65660.,  70560.,  124460., 129360.,
                                         227360., 232260., 286160., 291060.,
                                         389060., 393960., 447860., 452760.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      63055.,  63880.,  80395.,  81480.,  60350.,  61200.,  161819., 164486.,
      194187., 197470., 138810., 141260., 117715., 120700., 138215., 141820.,
      95950.,  98600.,  316495., 321280., 371455., 377160., 261650., 265800.,
      439019., 447230., 511119., 520870., 355950., 363020., 260275., 267220.,
      299915., 308140., 204850., 210800., 569935., 578680., 662515., 672840.,
      462950., 470400., 716219., 729974., 828051., 844270., 573090., 584780.,
      402835., 413740., 461615., 474460., 313750., 323000.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      129360., 131320., 138964., 141120., 244608., 248920., 254212., 258720.,
      446292., 454720., 455896., 464520., 561540., 572320., 571144., 582120.,
      763224., 778120., 772828., 787920., 878472., 895720., 888076., 905520.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      125285.,  126110.,  126935.,  127760.,  159705.,  160790.,  161875.,
      162960.,  119850.,  120700.,  121550.,  122400.,  320971.,  323638.,
      326305.,  328972.,  385091.,  388374.,  391657.,  394940.,  275170.,
      277620.,  280070.,  282520.,  232445.,  235430.,  238415.,  241400.,
      272825.,  276430.,  280035.,  283640.,  189250.,  191900.,  194550.,
      197200.,  628205.,  632990.,  637775.,  642560.,  737205.,  742910.,
      748615.,  754320.,  519150.,  523300.,  527450.,  531600.,  869827.,
      878038.,  886249.,  894460.,  1012487., 1022238., 1031989., 1041740.,
      704830.,  711900.,  718970.,  726040.,  513605.,  520550.,  527495.,
      534440.,  591605.,  599830.,  608055.,  616280.,  403750.,  409700.,
      415650.,  421600.,  1131125., 1139870., 1148615., 1157360., 1314705.,
      1325030., 1335355., 1345680., 918450.,  925900.,  933350.,  940800.,
      1418683., 1432438., 1446193., 1459948., 1639883., 1656102., 1672321.,
      1688540., 1134490., 1146180., 1157870., 1169560., 794765.,  805670.,
      816575.,  827480.,  910385.,  923230.,  936075.,  948920.,  618250.,
      627500.,  636750.,  646000.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      256760.,  258720.,  260680.,  262640.,  275772.,  277928.,  280084.,
      282240.,  484904.,  489216.,  493528.,  497840.,  503916.,  508424.,
      512932.,  517440.,  884156.,  892584.,  901012.,  909440.,  903168.,
      911792.,  920416.,  929040.,  1112300., 1123080., 1133860., 1144640.,
      1131312., 1142288., 1153264., 1164240., 1511552., 1526448., 1541344.,
      1556240., 1530564., 1545656., 1560748., 1575840., 1739696., 1756944.,
      1774192., 1791440., 1758708., 1776152., 1793596., 1811040.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      124190.,  127760.,  158585.,  162960.,  119175.,  122400.,  321538.,
      328972.,  385973.,  394940.,  275975.,  282520.,  234350.,  241400.,
      275205.,  283640.,  191075.,  197200.,  631070.,  642560.,  740705.,
      754320.,  521775.,  531600.,  875938.,  894460.,  1019837., 1041740.,
      710255.,  726040.,  519470.,  534440.,  598605.,  616280.,  408875.,
      421600.,  1137950., 1157360., 1322825., 1345680., 924375.,  940800.,
      1430338., 1459948., 1653701., 1688540., 1144535., 1169560., 804590.,
      827480.,  922005.,  948920.,  626675.,  646000.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      256319.,  262640.,  275527.,  282240.,  486815.,  497840.,
      506023.,  517440.,  890183.,  909440.,  909391.,  929040.,
      1120679., 1144640., 1139887., 1164240., 1524047., 1556240.,
      1543255., 1575840., 1754543., 1791440., 1773751., 1811040.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      246760.,  248380.,  253870.,  255520.,  315035.,  317170.,  323750.,
      325920.,  236675.,  238350.,  243100.,  244800.,  637784.,  643076.,
      652610.,  657944.,  765429.,  771946.,  783314.,  789880.,  547085.,
      551950.,  560140.,  565040.,  462760.,  468700.,  476830.,  482800.,
      543235.,  550410.,  560070.,  567280.,  376875.,  382150.,  389100.,
      394400.,  1252600., 1262140., 1275550., 1285120., 1470035., 1481410.,
      1497230., 1508640., 1035275., 1043550., 1054900., 1063200., 1735496.,
      1751876., 1772498., 1788920., 2020221., 2039674., 2063978., 2083480.,
      1406405., 1420510., 1437940., 1452080., 1025080., 1038940., 1054990.,
      1068880., 1180795., 1197210., 1216110., 1232560., 805875.,  817750.,
      831300.,  843200.,  2258440., 2275900., 2297230., 2314720., 2625035.,
      2645650., 2670710., 2691360., 1833875., 1848750., 1866700., 1881600.,
      2833208., 2860676., 2892386., 2919896., 3275013., 3307402., 3344642.,
      3377080., 2265725., 2289070., 2315740., 2339120., 1587400., 1609180.,
      1633150., 1654960., 1818355., 1844010., 1872150., 1897840., 1234875.,
      1253350., 1273500., 1292000.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      508767.,  512638.,  521360.,  525280.,  546791.,  551054.,  560168.,
      564480.,  965055.,  973630.,  987056.,  995680.,  1003079., 1012046.,
      1025864., 1034880., 1763559., 1780366., 1802024., 1818880., 1801583.,
      1818782., 1840832., 1858080., 2219847., 2241358., 2267720., 2289280.,
      2257871., 2279774., 2306528., 2328480., 3018351., 3048094., 3082688.,
      3112480., 3056375., 3086510., 3121496., 3151680., 3474639., 3509086.,
      3548384., 3582880., 3512663., 3547502., 3587192., 3622080.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      491900.,  493520.,  495140.,  496760.,  506090.,  507740.,  509390.,
      511040.,  627935.,  630070.,  632205.,  634340.,  645330.,  647500.,
      649670.,  651840.,  471675.,  473350.,  475025.,  476700.,  484500.,
      486200.,  487900.,  489600.,  1270276., 1275568., 1280860., 1286152.,
      1299886., 1305220., 1310554., 1315888., 1524341., 1530858., 1537375.,
      1543892., 1560062., 1566628., 1573194., 1579760., 1089305., 1094170.,
      1099035., 1103900., 1115380., 1120280., 1125180., 1130080., 919580.,
      925520.,  931460.,  937400.,  947690.,  953660.,  959630.,  965600.,
      1079295., 1086470., 1093645., 1100820., 1112930., 1120140., 1127350.,
      1134560., 748475.,  753750.,  759025.,  764300.,  772900.,  778200.,
      783500.,  788800.,  2495660., 2505200., 2514740., 2524280., 2541530.,
      2551100., 2560670., 2570240., 2928695., 2940070., 2951445., 2962820.,
      2983050., 2994460., 3005870., 3017280., 2062275., 2070550., 2078825.,
      2087100., 2101500., 2109800., 2118100., 2126400., 3454612., 3470992.,
      3487372., 3503752., 3528574., 3544996., 3561418., 3577840., 4020989.,
      4040442., 4059895., 4079348., 4108454., 4127956., 4147458., 4166960.,
      2798705., 2812810., 2826915., 2841020., 2861740., 2875880., 2890020.,
      2904160., 2036300., 2050160., 2064020., 2077880., 2096090., 2109980.,
      2123870., 2137760., 2345175., 2361590., 2378005., 2394420., 2415770.,
      2432220., 2448670., 2465120., 1599875., 1611750., 1623625., 1635500.,
      1650700., 1662600., 1674500., 1686400., 4499420., 4516880., 4534340.,
      4551800., 4576970., 4594460., 4611950., 4629440., 5229455., 5250070.,
      5270685., 5291300., 5320770., 5341420., 5362070., 5382720., 3652875.,
      3667750., 3682625., 3697500., 3718500., 3733400., 3748300., 3763200.,
      5638948., 5666416., 5693884., 5721352., 5757262., 5784772., 5812282.,
      5839792., 6517637., 6550026., 6582415., 6614804., 6656846., 6689284.,
      6721722., 6754160., 4508105., 4531450., 4554795., 4578140., 4608100.,
      4631480., 4654860., 4678240., 3153020., 3174800., 3196580., 3218360.,
      3244490., 3266300., 3288110., 3309920., 3611055., 3636710., 3662365.,
      3688020., 3718610., 3744300., 3769990., 3795680., 2451275., 2469750.,
      2488225., 2506700., 2528500., 2547000., 2565500., 2584000.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1013663., 1017534., 1021405., 1025276., 1038800., 1042720., 1046640.,
      1050560., 1089319., 1093582., 1097845., 1102108., 1116024., 1120336.,
      1124648., 1128960., 1921535., 1930110., 1938685., 1947260., 1965488.,
      1974112., 1982736., 1991360., 1997191., 2006158., 2015125., 2024092.,
      2042712., 2051728., 2060744., 2069760., 3510311., 3527118., 3543925.,
      3560732., 3587192., 3604048., 3620904., 3637760., 3585967., 3603166.,
      3620365., 3637564., 3664416., 3681664., 3698912., 3716160., 4418183.,
      4439694., 4461205., 4482716., 4513880., 4535440., 4557000., 4578560.,
      4493839., 4515742., 4537645., 4559548., 4591104., 4613056., 4635008.,
      4656960., 6006959., 6036702., 6066445., 6096188., 6135584., 6165376.,
      6195168., 6224960., 6082615., 6112750., 6142885., 6173020., 6212808.,
      6242992., 6273176., 6303360., 6914831., 6949278., 6983725., 7018172.,
      7062272., 7096768., 7131264., 7165760., 6990487., 7025326., 7060165.,
      7095004., 7139496., 7174384., 7209272., 7244160.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      489710.,  496760.,  503870.,  511040.,  625695.,  634340.,  643055.,
      651840.,  470325.,  476700.,  483125.,  489600.,  1271410., 1286152.,
      1300978., 1315888., 1526105., 1543892., 1561777., 1579760., 1090915.,
      1103900., 1116955., 1130080., 923390.,  937400.,  951470.,  965600.,
      1084055., 1100820., 1117655., 1134560., 752125.,  764300.,  776525.,
      788800.,  2501390., 2524280., 2547230., 2570240., 2935695., 2962820.,
      2990015., 3017280., 2067525., 2087100., 2106725., 2126400., 3466834.,
      3503752., 3540754., 3577840., 4035689., 4079348., 4123105., 4166960.,
      2809555., 2841020., 2872555., 2904160., 2048030., 2077880., 2107790.,
      2137760., 2359175., 2394420., 2429735., 2465120., 1610125., 1635500.,
      1660925., 1686400., 4513070., 4551800., 4590590., 4629440., 5245695.,
      5291300., 5336975., 5382720., 3664725., 3697500., 3730325., 3763200.,
      5662258., 5721352., 5780530., 5839792., 6545273., 6614804., 6684433.,
      6754160., 4528195., 4578140., 4628155., 4678240., 3172670., 3218360.,
      3264110., 3309920., 3634295., 3688020., 3741815., 3795680., 2468125.,
      2506700., 2545325., 2584000.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1012781., 1025276., 1037869., 1050560., 1088829., 1102108., 1115485.,
      1128960., 1925357., 1947260., 1969261., 1991360., 2001405., 2024092.,
      2046877., 2069760., 3522365., 3560732., 3599197., 3637760., 3598413.,
      3637564., 3676813., 3716160., 4434941., 4482716., 4530589., 4578560.,
      4510989., 4559548., 4608205., 4656960., 6031949., 6096188., 6160525.,
      6224960., 6107997., 6173020., 6238141., 6303360., 6944525., 7018172.,
      7091917., 7165760., 7020573., 7095004., 7169533., 7244160.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      976210.,   979420.,   990280.,   993520.,   1004470.,  1007740.,
      1018780.,  1022080.,  1247155.,  1251390.,  1264410.,  1268680.,
      1281805.,  1286110.,  1299340.,  1303680.,  937325.,   940650.,
      950050.,   953400.,   962875.,   966250.,   975800.,   979200.,
      2532278.,  2542820.,  2561720.,  2572304.,  2591330.,  2601956.,
      2621108.,  2631776.,  3039225.,  3052210.,  3074750.,  3087784.,
      3110471.,  3123554.,  3146388.,  3159520.,  2172135.,  2181830.,
      2198070.,  2207800.,  2224145.,  2233910.,  2250360.,  2260160.,
      1834930.,  1846780.,  1862920.,  1874800.,  1891030.,  1902940.,
      1919260.,  1931200.,  2153795.,  2168110.,  2187290.,  2201640.,
      2220925.,  2235310.,  2254700.,  2269120.,  1493725.,  1504250.,
      1518050.,  1528600.,  1542475.,  1553050.,  1567000.,  1577600.,
      4983730.,  5002780.,  5029480.,  5048560.,  5075350.,  5094460.,
      5121340.,  5140480.,  5848675.,  5871390.,  5902890.,  5925640.,
      5957245.,  5980030.,  6011740.,  6034560.,  4118525.,  4135050.,
      4157650.,  4174200.,  4196875.,  4213450.,  4236200.,  4252800.,
      6900950.,  6933668.,  6974744.,  7007504.,  7048706.,  7081508.,
      7122836.,  7155680.,  8032521.,  8071378.,  8119790.,  8158696.,
      8207255.,  8246210.,  8294916.,  8333920.,  5590935.,  5619110.,
      5653830.,  5682040.,  5716865.,  5745110.,  5780040.,  5808320.,
      4068370.,  4096060.,  4128040.,  4155760.,  4187830.,  4215580.,
      4247740.,  4275520.,  4685555.,  4718350.,  4756010.,  4788840.,
      4826605.,  4859470.,  4897340.,  4930240.,  3196525.,  3220250.,
      3247250.,  3271000.,  3298075.,  3321850.,  3349000.,  3372800.,
      8991250.,  9026140.,  9068680.,  9103600.,  9146230.,  9181180.,
      9223900.,  9258880.,  10450195., 10491390., 10541370., 10582600.,
      10632685., 10673950., 10724140., 10765440., 7299725.,  7329450.,
      7365250.,  7395000.,  7430875.,  7460650.,  7496600.,  7526400.,
      11269622., 11324516., 11387768., 11442704., 11506082., 11561060.,
      11624564., 11679584., 13025817., 13090546., 13164830., 13229608.,
      13304039., 13368866., 13443444., 13508320., 9009735.,  9056390.,
      9109590.,  9156280.,  9209585.,  9256310.,  9309720.,  9356480.,
      6301810.,  6345340.,  6393160.,  6436720.,  6484630.,  6528220.,
      6576220.,  6619840.,  7217315.,  7268590.,  7324730.,  7376040.,
      7432285.,  7483630.,  7539980.,  7591360.,  4899325.,  4936250.,
      4976450.,  5013400.,  5053675.,  5090650.,  5131000.,  5168000.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2017869.,  2025562.,  2042810.,  2050552.,  2067947.,  2075738.,
      2093280.,  2101120.,  2169181.,  2177658.,  2195690.,  2204216.,
      2222395.,  2230970.,  2249296.,  2257920.,  3833613.,  3850714.,
      3877370.,  3894520.,  3921323.,  3938522.,  3965472.,  3982720.,
      3984925.,  4002810.,  4030250.,  4048184.,  4075771.,  4093754.,
      4121488.,  4139520.,  7011165.,  7044730.,  7087850.,  7121464.,
      7164731.,  7198394.,  7241808.,  7275520.,  7162477.,  7196826.,
      7240730.,  7275128.,  7319179.,  7353626.,  7397824.,  7432320.,
      8826909.,  8869882.,  8922410.,  8965432.,  9018107.,  9061178.,
      9114000.,  9157120.,  8978221.,  9021978.,  9075290.,  9119096.,
      9172555.,  9216410.,  9270016.,  9313920.,  12004461., 12063898.,
      12132890., 12192376., 12261515., 12321050., 12390336., 12449920.,
      12155773., 12215994., 12285770., 12346040., 12415963., 12476282.,
      12546352., 12606720., 13820205., 13889050., 13967450., 14036344.,
      14114891., 14183834., 14262528., 14331520., 13971517., 14041146.,
      14120330., 14190008., 14269339., 14339066., 14418544., 14488320.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1949210.,  1952420.,  1955630.,  1958840.,  1977320.,  1980560.,
      1983800.,  1987040.,  2005670.,  2008940.,  2012210.,  2015480.,
      2034260.,  2037560.,  2040860.,  2044160.,  2490075.,  2494310.,
      2498545.,  2502780.,  2524550.,  2528820.,  2533090.,  2537360.,
      2559305.,  2563610.,  2567915.,  2572220.,  2594340.,  2598680.,
      2603020.,  2607360.,  1871325.,  1874650.,  1877975.,  1881300.,
      1896750.,  1900100.,  1903450.,  1906800.,  1922375.,  1925750.,
      1929125.,  1932500.,  1948200.,  1951600.,  1955000.,  1958400.,
      5054014.,  5064556.,  5075098.,  5085640.,  5112856.,  5123440.,
      5134024.,  5144608.,  5172034.,  5182660.,  5193286.,  5203912.,
      5231548.,  5242216.,  5252884.,  5263552.,  6065465.,  6078450.,
      6091435.,  6104420.,  6136466.,  6149500.,  6162534.,  6175568.,
      6207859.,  6220942.,  6234025.,  6247108.,  6279644.,  6292776.,
      6305908.,  6319040.,  4334575.,  4344270.,  4353965.,  4363660.,
      4386410.,  4396140.,  4405870.,  4415600.,  4438525.,  4448290.,
      4458055.,  4467820.,  4490920.,  4500720.,  4510520.,  4520320.,
      3658010.,  3669860.,  3681710.,  3693560.,  3713960.,  3725840.,
      3737720.,  3749600.,  3770150.,  3782060.,  3793970.,  3805880.,
      3826580.,  3838520.,  3850460.,  3862400.,  4293275.,  4307590.,
      4321905.,  4336220.,  4360230.,  4374580.,  4388930.,  4403280.,
      4427465.,  4441850.,  4456235.,  4470620.,  4494980.,  4509400.,
      4523820.,  4538240.,  2976925.,  2987450.,  2997975.,  3008500.,
      3025550.,  3036100.,  3046650.,  3057200.,  3074375.,  3084950.,
      3095525.,  3106100.,  3123400.,  3134000.,  3144600.,  3155200.,
      9948410.,  9967460.,  9986510.,  10005560., 10039880., 10058960.,
      10078040., 10097120., 10131590., 10150700., 10169810., 10188920.,
      10223540., 10242680., 10261820., 10280960., 11674635., 11697350.,
      11720065., 11742780., 11783030., 11805780., 11828530., 11851280.,
      11891705., 11914490., 11937275., 11960060., 12000660., 12023480.,
      12046300., 12069120., 8220525.,  8237050.,  8253575.,  8270100.,
      8298750.,  8315300.,  8331850.,  8348400.,  8377175.,  8393750.,
      8410325.,  8426900.,  8455800.,  8472400.,  8489000.,  8505600.,
      13769182., 13801900., 13834618., 13867336., 13916728., 13949488.,
      13982248., 14015008., 14064610., 14097412., 14130214., 14163016.,
      14212828., 14245672., 14278516., 14311360., 16026185., 16065042.,
      16103899., 16142756., 16200674., 16239580., 16278486., 16317392.,
      16375555., 16414510., 16453465., 16492420., 16550828., 16589832.,
      16628836., 16667840., 11153695., 11181870., 11210045., 11238220.,
      11279450., 11307660., 11335870., 11364080., 11405485., 11433730.,
      11461975., 11490220., 11531800., 11560080., 11588360., 11616640.,
      7009274.,  7034916.,  7060558.,  7086200.,  7120392.,  7146064.,
      7171736.,  7197408.,  7231750.,  7257452.,  7283154.,  7308856.,
      7343348.,  7369080.,  7394812.,  7420544.,  6235595.,  6262246.,
      6288897.,  6315548.,  6351894.,  6378580.,  6405266.,  6431952.,
      6468473.,  6495194.,  6521915.,  6548636.,  6585332.,  6612088.,
      6638844.,  6665600.,  3906605.,  3925210.,  3943815.,  3962420.,
      3987550.,  4006180.,  4024810.,  4043440.,  4068695.,  4087350.,
      4106005.,  4124660.,  4150040.,  4168720.,  4187400.,  4206080.,
      2434010.,  2438180.,  2442350.,  2446520.,  2465960.,  2470160.,
      2474360.,  2478560.,  2498150.,  2502380.,  2506610.,  2510840.,
      2530580.,  2534840.,  2539100.,  2543360.,  3046715.,  3052070.,
      3057425.,  3062780.,  3085670.,  3091060.,  3096450.,  3101840.,
      3124905.,  3130330.,  3135755.,  3141180.,  3164420.,  3169880.,
      3175340.,  3180800.,  2256125.,  2260250.,  2264375.,  2268500.,
      2284750.,  2288900.,  2293050.,  2297200.,  2313575.,  2317750.,
      2321925.,  2326100.,  2342600.,  2346800.,  2351000.,  2355200.,
      5582206.,  5594092.,  5605978.,  5617864.,  5646424.,  5658352.,
      5670280.,  5682208.,  5710978.,  5722948.,  5734918.,  5746888.,
      5775868.,  5787880.,  5799892.,  5811904.,  6669145.,  6683698.,
      6698251.,  6712804.,  6746418.,  6761020.,  6775622.,  6790224.,
      6824083.,  6838734.,  6853385.,  6868036.,  6902140.,  6916840.,
      6931540.,  6946240.,  4747855.,  4758670.,  4769485.,  4780300.,
      4804170.,  4815020.,  4825870.,  4836720.,  4860765.,  4871650.,
      4882535.,  4893420.,  4917640.,  4928560.,  4939480.,  4950400.,
      3927770.,  3940580.,  3953390.,  3966200.,  3987560.,  4000400.,
      4013240.,  4026080.,  4047590.,  4060460.,  4073330.,  4086200.,
      4107860.,  4120760.,  4133660.,  4146560.,  4599035.,  4614470.,
      4629905.,  4645340.,  4670470.,  4685940.,  4701410.,  4716880.,
      4742185.,  4757690.,  4773195.,  4788700.,  4814180.,  4829720.,
      4845260.,  4860800.,  3182525.,  3193850.,  3205175.,  3216500.,
      3234350.,  3245700.,  3257050.,  3268400.,  3286375.,  3297750.,
      3309125.,  3320500.,  3338600.,  3350000.,  3361400.,  3372800.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4028045.,  4035738.,  4043431.,  4051124.,  4077878.,  4085620.,
      4093362.,  4101104.,  4128103.,  4135894.,  4143685.,  4151476.,
      4178720.,  4186560.,  4194400.,  4202240.,  4329885.,  4338362.,
      4346839.,  4355316.,  4382854.,  4391380.,  4399906.,  4408432.,
      4436215.,  4444790.,  4453365.,  4461940.,  4489968.,  4498592.,
      4507216.,  4515840.,  7650125.,  7667226.,  7684327.,  7701428.,
      7737590.,  7754740.,  7771890.,  7789040.,  7825447.,  7842646.,
      7859845.,  7877044.,  7913696.,  7930944.,  7948192.,  7965440.,
      7951965.,  7969850.,  7987735.,  8005620.,  8042566.,  8060500.,
      8078434.,  8096368.,  8133559.,  8151542.,  8169525.,  8187508.,
      8224944.,  8242976.,  8261008.,  8279040.,  13988765., 14022330.,
      14055895., 14089460., 14142086., 14175700., 14209314., 14242928.,
      14295799., 14329462., 14363125., 14396788., 14449904., 14483616.,
      14517328., 14551040., 14290605., 14324954., 14359303., 14393652.,
      14447062., 14481460., 14515858., 14550256., 14603911., 14638358.,
      14672805., 14707252., 14761152., 14795648., 14830144., 14864640.,
      15297629., 15337530., 15377431., 15417332., 15476294., 15516244.,
      15556194., 15596144., 15655351., 15695350., 15735349., 15775348.,
      15834800., 15874848., 15914896., 15954944., 12744557., 12781146.,
      12817735., 12854324., 12909974., 12946612., 12983250., 13019888.,
      13075783., 13112470., 13149157., 13185844., 13241984., 13278720.,
      13315456., 13352192., 4631725.,  4640986.,  4650247.,  4659508.,
      4687830.,  4697140.,  4706450.,  4715760.,  4744327.,  4753686.,
      4763045.,  4772404.,  4801216.,  4810624.,  4820032.,  4829440.,
      4933565.,  4943610.,  4953655.,  4963700.,  4992806.,  5002900.,
      5012994.,  5023088.,  5052439.,  5062582.,  5072725.,  5082868.,
      5112464.,  5122656.,  5132848.,  5143040.,  8253805.,  8272474.,
      8291143.,  8309812.,  8347542.,  8366260.,  8384978.,  8403696.,
      8441671.,  8460438.,  8479205.,  8497972.,  8536192.,  8555008.,
      8573824.,  8592640.,  8555645.,  8575098.,  8594551.,  8614004.,
      8652518.,  8672020.,  8691522.,  8711024.,  8749783.,  8769334.,
      8788885.,  8808436.,  8847440.,  8867040.,  8886640.,  8906240.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30525.,  45080.,  49560.,  28650.,  80220.,  112504., 117404., 65296.,
      59575.,  81340.,  83860.,  45030.,  157575., 217560., 222040., 122590.,
      220360., 301154., 306054., 166628., 132725., 178360., 180880., 95850.,
      284625., 390040., 394520., 216530., 360500., 489804., 494704., 267960.,
      205875., 275380., 277900., 146670.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {75754.,  80654.,  144354., 149254.,
                                         264404., 269304., 333004., 337904.,
                                         453054., 457954., 521654., 526554.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      60275.,  61050.,  88970.,  90160.,  97790.,  99120.,  56490.,  57300.,
      157885., 160440., 221284., 225008., 230888., 234808., 128282., 130592.,
      116275., 119150., 158550., 162680., 163450., 167720., 87570.,  90060.,
      310525., 315150., 428540., 435120., 437360., 444080., 241290., 245180.,
      432775., 440720., 591038., 602308., 600642., 612108., 326634., 333256.,
      258725., 265450., 347200., 356720., 352100., 361760., 186130., 191700.,
      560775., 569250., 768110., 780080., 776930., 789040., 426090., 433060.,
      707665., 721000., 960792., 979608., 970396., 989408., 524986., 535920.,
      401175., 411750., 535850., 550760., 540750., 555800., 284690., 293340.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      149254., 151508., 158858.,  161308.,  283710.,  288708.,
      293314., 298508., 519008.,  528808.,  528612.,  538608.,
      653464., 666008., 663068.,  675808.,  888762.,  906108.,
      898366., 915908., 1023218., 1043308., 1032822., 1053108.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      119775.,  120550.,  121325.,  122100.,  176750.,  177940.,  179130.,
      180320.,  194250.,  195580.,  196910.,  198240.,  112170.,  112980.,
      113790.,  114600.,  313215.,  315770.,  318325.,  320880.,  438844.,
      442568.,  446292.,  450016.,  457856.,  461776.,  465696.,  469616.,
      254254.,  256564.,  258874.,  261184.,  229675.,  232550.,  235425.,
      238300.,  312970.,  317100.,  321230.,  325360.,  322630.,  326900.,
      331170.,  335440.,  172650.,  175140.,  177630.,  180120.,  616425.,
      621050.,  625675.,  630300.,  850500.,  857080.,  863660.,  870240.,
      868000.,  874720.,  881440.,  888160.,  478690.,  482580.,  486470.,
      490360.,  857605.,  865550.,  873495.,  881440.,  1170806., 1182076.,
      1193346., 1204616., 1189818., 1201284., 1212750., 1224216., 646646.,
      653268.,  659890.,  666512.,  510725.,  517450.,  524175.,  530900.,
      684880.,  694400.,  703920.,  713440.,  694540.,  704200.,  713860.,
      723520.,  366690.,  372260.,  377830.,  383400.,  1113075., 1121550.,
      1130025., 1138500., 1524250., 1536220., 1548190., 1560160., 1541750.,
      1553860., 1565970., 1578080., 845210.,  852180.,  859150.,  866120.,
      1401995., 1415330., 1428665., 1442000., 1902768., 1921584., 1940400.,
      1959216., 1921780., 1940792., 1959804., 1978816., 1039038., 1049972.,
      1060906., 1071840., 791775.,  802350.,  812925.,  823500.,  1056790.,
      1071700., 1086610., 1101520., 1066450., 1081500., 1096550., 1111600.,
      560730.,  569380.,  578030.,  586680.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      296254.,  298508.,  300762.,  303016.,  315266.,  317716.,  320166.,
      322616.,  562422.,  567420.,  572418.,  577416.,  581434.,  586628.,
      591822.,  597016.,  1028216., 1038016., 1047816., 1057616., 1047228.,
      1057224., 1067220., 1077216., 1294384., 1306928., 1319472., 1332016.,
      1313396., 1326136., 1338876., 1351616., 1760178., 1777524., 1794870.,
      1812216., 1779190., 1796732., 1814274., 1831816., 2026346., 2046436.,
      2066526., 2086616., 2045358., 2065644., 2085930., 2106216.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      118925.,  122100.,  175735.,  180320.,  193375.,  198240.,  111780.,
      114600.,  313985.,  320880.,  440167.,  450016.,  459375.,  469616.,
      255276.,  261184.,  231625.,  238300.,  315875.,  325360.,  325675.,
      335440.,  174500.,  180120.,  619425.,  630300.,  854875.,  870240.,
      872515.,  888160.,  481380.,  490360.,  863765.,  881440.,  1179675.,
      1204616., 1198883., 1224216., 651980.,  666512.,  516525.,  530900.,
      693175.,  713440.,  702975.,  723520.,  371620.,  383400.,  1119925.,
      1138500., 1534015., 1560160., 1551655., 1578080., 850980.,  866120.,
      1413545., 1442000., 1919183., 1959216., 1938391., 1978816., 1048684.,
      1071840., 801425.,  823500.,  1070475., 1101520., 1080275., 1111600.,
      568740.,  586680.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      296107.,  303016.,  315315.,  322616.,  565019.,  577416.,
      584227.,  597016.,  1035615., 1057616., 1054823., 1077216.,
      1304527., 1332016., 1323735., 1351616., 1775123., 1812216.,
      1794331., 1831816., 2044035., 2086616., 2063243., 2106216.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      236325.,  237850.,  242650.,  244200.,  349125.,  351470.,  358260.,
      360640.,  384125.,  386750.,  393820.,  396480.,  221960.,  223560.,
      227580.,  229200.,  622895.,  627970.,  636650.,  641760.,  872935.,
      880334.,  892584.,  900032.,  910959.,  918750.,  931392.,  939232.,
      505960.,  510552.,  517748.,  522368.,  457525.,  463250.,  470850.,
      476600.,  623525.,  631750.,  642460.,  650720.,  642845.,  651350.,
      662340.,  670880.,  344040.,  349000.,  355260.,  360240.,  1229625.,
      1238850., 1251350., 1260600., 1696625., 1709750., 1727320., 1740480.,
      1731625., 1745030., 1762880., 1776320., 955000.,  962760.,  972940.,
      980720.,  1711675., 1727530., 1746990., 1762880., 2336859., 2359350.,
      2386692., 2409232., 2374883., 2397766., 2425500., 2448432., 1290744.,
      1303960., 1319780., 1333024., 1019625., 1033050., 1048350., 1061800.,
      1367345., 1386350., 1407840., 1426880., 1386665., 1405950., 1427720.,
      1447040., 732120.,  743240.,  755660.,  766800.,  2222925., 2239850.,
      2260050., 2277000., 3044125., 3068030., 3096380., 3120320., 3079125.,
      3103310., 3131940., 3156160., 1688040., 1701960., 1718300., 1732240.,
      2800455., 2827090., 2857330., 2884000., 3800783., 3838366., 3880800.,
      3918432., 3838807., 3876782., 3919608., 3957632., 2075528., 2097368.,
      2121812., 2143680., 1581725., 1602850., 1625850., 1647000., 2111165.,
      2140950., 2173220., 2203040., 2130485., 2160550., 2193100., 2223200.,
      1120200., 1137480., 1156060., 1173360.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      587755.,  592214.,  601524.,  606032.,  625779.,  630630.,  640332.,
      645232.,  1120091., 1130038., 1144836., 1154832., 1158115., 1168454.,
      1183644., 1194032., 2051679., 2071230., 2095632., 2115232., 2089703.,
      2109646., 2134440., 2154432., 2584015., 2609054., 2638944., 2664032.,
      2622039., 2647470., 2677752., 2703232., 3515603., 3550246., 3589740.,
      3624432., 3553627., 3588662., 3628548., 3663632., 4047939., 4088070.,
      4133052., 4173232., 4085963., 4126486., 4171860., 4212432.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      471125.,  472650.,  474175.,  475700.,  483750.,  485300.,  486850.,
      488400.,  695905.,  698250.,  700595.,  702940.,  714140.,  716520.,
      718900.,  721280.,  765625.,  768250.,  770875.,  773500.,  784980.,
      787640.,  790300.,  792960.,  442320.,  443920.,  445520.,  447120.,
      453540.,  455160.,  456780.,  458400.,  1240715., 1245790., 1250865.,
      1255940., 1268190., 1273300., 1278410., 1283520., 1738471., 1745870.,
      1753269., 1760668., 1777720., 1785168., 1792616., 1800064., 1814127.,
      1821918., 1829709., 1837500., 1854944., 1862784., 1870624., 1878464.,
      1007328., 1011920., 1016512., 1021104., 1030876., 1035496., 1040116.,
      1044736., 909325.,  915050.,  920775.,  926500.,  935950.,  941700.,
      947450.,  953200.,  1238825., 1247050., 1255275., 1263500., 1276660.,
      1284920., 1293180., 1301440., 1277185., 1285690., 1294195., 1302700.,
      1316140., 1324680., 1333220., 1341760., 683120.,  688080.,  693040.,
      698000.,  705540.,  710520.,  715500.,  720480.,  2450025., 2459250.,
      2468475., 2477700., 2493450., 2502700., 2511950., 2521200., 3380125.,
      3393250., 3406375., 3419500., 3441480., 3454640., 3467800., 3480960.,
      3449845., 3463250., 3476655., 3490060., 3512320., 3525760., 3539200.,
      3552640., 1902240., 1910000., 1917760., 1925520., 1938100., 1945880.,
      1953660., 1961440., 3407495., 3423350., 3439205., 3455060., 3478090.,
      3493980., 3509870., 3525760., 4651227., 4673718., 4696209., 4718700.,
      4750844., 4773384., 4795924., 4818464., 4726883., 4749766., 4772649.,
      4795532., 4828068., 4851000., 4873932., 4896864., 2568272., 2581488.,
      2594704., 2607920., 2626316., 2639560., 2652804., 2666048., 2025825.,
      2039250., 2052675., 2066100., 2083250., 2096700., 2110150., 2123600.,
      2715685., 2734690., 2753695., 2772700., 2796640., 2815680., 2834720.,
      2853760., 2754045., 2773330., 2792615., 2811900., 2836120., 2855440.,
      2874760., 2894080., 1453120., 1464240., 1475360., 1486480., 1500180.,
      1511320., 1522460., 1533600., 4428925., 4445850., 4462775., 4479700.,
      4503150., 4520100., 4537050., 4554000., 6064345., 6088250., 6112155.,
      6136060., 6168820., 6192760., 6216700., 6240640., 6134065., 6158250.,
      6182435., 6206620., 6239660., 6263880., 6288100., 6312320., 3362160.,
      3376080., 3390000., 3403920., 3422660., 3436600., 3450540., 3464480.,
      5574275., 5600910., 5627545., 5654180., 5687990., 5714660., 5741330.,
      5768000., 7563983., 7601566., 7639149., 7676732., 7723968., 7761600.,
      7799232., 7836864., 7639639., 7677614., 7715589., 7753564., 7801192.,
      7839216., 7877240., 7915264., 4129216., 4151056., 4172896., 4194736.,
      4221756., 4243624., 4265492., 4287360., 3142325., 3163450., 3184575.,
      3205700., 3230550., 3251700., 3272850., 3294000., 4192545., 4222330.,
      4252115., 4281900., 4316620., 4346440., 4376260., 4406080., 4230905.,
      4260970., 4291035., 4321100., 4356100., 4386200., 4416300., 4446400.,
      2223120., 2240400., 2257680., 2274960., 2294820., 2312120., 2329420.,
      2346720.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1171051., 1175510., 1179969., 1184428., 1198540., 1203048., 1207556.,
      1212064., 1246707., 1251558., 1256409., 1261260., 1275764., 1280664.,
      1285564., 1290464., 2230235., 2240182., 2250129., 2260076., 2279676.,
      2289672., 2299668., 2309664., 2305891., 2316230., 2326569., 2336908.,
      2356900., 2367288., 2377676., 2388064., 4083807., 4103358., 4122909.,
      4142460., 4171664., 4191264., 4210864., 4230464., 4159463., 4179406.,
      4199349., 4219292., 4248888., 4268880., 4288872., 4308864., 5142991.,
      5168030., 5193069., 5218108., 5252800., 5277888., 5302976., 5328064.,
      5218647., 5244078., 5269509., 5294940., 5330024., 5355504., 5380984.,
      5406464., 6996563., 7031206., 7065849., 7100492., 7144788., 7179480.,
      7214172., 7248864., 7072219., 7107254., 7142289., 7177324., 7222012.,
      7257096., 7292180., 7327264., 8055747., 8095878., 8136009., 8176140.,
      8225924., 8266104., 8306284., 8346464., 8131403., 8171926., 8212449.,
      8252972., 8303148., 8343720., 8384292., 8424864.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      469425.,  475700.,  482025.,  488400.,  693875.,  702940.,  712075.,
      721280.,  763875.,  773500.,  783195.,  792960.,  441540.,  447120.,
      452740.,  458400.,  1242255., 1255940., 1269695., 1283520., 1741117.,
      1760668., 1780317., 1800064., 1817165., 1837500., 1857933., 1878464.,
      1009372., 1021104., 1032892., 1044736., 913225.,  926500.,  939825.,
      953200.,  1244635., 1263500., 1282435., 1301440., 1283275., 1302700.,
      1322195., 1341760., 686820.,  698000.,  709220.,  720480.,  2456025.,
      2477700., 2499425., 2521200., 3388875., 3419500., 3450195., 3480960.,
      3458875., 3490060., 3521315., 3552640., 1907620., 1925520., 1943460.,
      1961440., 3419815., 3455060., 3490375., 3525760., 4668965., 4718700.,
      4768533., 4818464., 4745013., 4795532., 4846149., 4896864., 2578940.,
      2607920., 2636956., 2666048., 2037425., 2066100., 2094825., 2123600.,
      2732275., 2772700., 2813195., 2853760., 2770915., 2811900., 2852955.,
      2894080., 1462980., 1486480., 1510020., 1533600., 4442625., 4479700.,
      4516825., 4554000., 6083875., 6136060., 6188315., 6240640., 6153875.,
      6206620., 6259435., 6312320., 3373700., 3403920., 3434180., 3464480.,
      5597375., 5654180., 5711055., 5768000., 7596813., 7676732., 7756749.,
      7836864., 7672861., 7753564., 7834365., 7915264., 4148508., 4194736.,
      4241020., 4287360., 3161625., 3205700., 3249825., 3294000., 4219915.,
      4281900., 4343955., 4406080., 4258555., 4321100., 4383715., 4446400.,
      2239140., 2274960., 2310820., 2346720.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1170757., 1184428., 1198197., 1212064., 1246805., 1261260., 1275813.,
      1290464., 2235429., 2260076., 2284821., 2309664., 2311477., 2336908.,
      2362437., 2388064., 4098605., 4142460., 4186413., 4230464., 4174653.,
      4219292., 4264029., 4308864., 5163277., 5218108., 5273037., 5328064.,
      5239325., 5294940., 5350653., 5406464., 7026453., 7100492., 7174629.,
      7248864., 7102501., 7177324., 7252245., 7327264., 8091125., 8176140.,
      8261253., 8346464., 8167173., 8252972., 8338869., 8424864.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      935825.,   938850.,   948350.,   951400.,   960975.,   964050.,
      973700.,   976800.,   1383095.,  1387750.,  1401190.,  1405880.,
      1419425.,  1424150.,  1437800.,  1442560.,  1522535.,  1527750.,
      1541750.,  1547000.,  1561105.,  1566390.,  1580600.,  1585920.,
      879900.,   883080.,   891040.,   894240.,   902260.,   905480.,
      913560.,   916800.,   2474395.,  2484510.,  2501730.,  2511880.,
      2529205.,  2539390.,  2556820.,  2567040.,  3467485.,  3482234.,
      3506538.,  3521336.,  3545787.,  3560634.,  3585232.,  3600128.,
      3618797.,  3634330.,  3659418.,  3675000.,  3700235.,  3715866.,
      3741248.,  3756928.,  2009588.,  2018744.,  2033024.,  2042208.,
      2056572.,  2065784.,  2080232.,  2089472.,  1815025.,  1826450.,
      1841550.,  1853000.,  1868175.,  1879650.,  1894900.,  1906400.,
      2472855.,  2489270.,  2510550.,  2527000.,  2548385.,  2564870.,
      2586360.,  2602880.,  2549575.,  2566550.,  2588390.,  2605400.,
      2627345.,  2644390.,  2666440.,  2683520.,  1363740.,  1373640.,
      1386080.,  1396000.,  1408500.,  1418440.,  1431000.,  1440960.,
      4893625.,  4912050.,  4936950.,  4955400.,  4980375.,  4998850.,
      5023900.,  5042400.,  6751535.,  6777750.,  6812750.,  6839000.,
      6874105.,  6900390.,  6935600.,  6961920.,  6890975.,  6917750.,
      6953310.,  6980120.,  7015785.,  7042630.,  7078400.,  7105280.,
      3799740.,  3815240.,  3835520.,  3851040.,  3871380.,  3886920.,
      3907320.,  3922880.,  6807955.,  6839630.,  6878410.,  6910120.,
      6949005.,  6980750.,  7019740.,  7051520.,  9292997.,  9337930.,
      9392418.,  9437400.,  9492035.,  9537066.,  9591848.,  9636928.,
      9444309.,  9490026.,  9545298.,  9591064.,  9646483.,  9692298.,
      9747864.,  9793728.,  5131476.,  5157880.,  5189408.,  5215840.,
      5247452.,  5273912.,  5305608.,  5332096.,  4048025.,  4074850.,
      4105350.,  4132200.,  4162775.,  4189650.,  4220300.,  4247200.,
      5426575.,  5464550.,  5507390.,  5545400.,  5588345.,  5626390.,
      5669440.,  5707520.,  5503295.,  5541830.,  5585230.,  5623800.,
      5667305.,  5705910.,  5749520.,  5788160.,  2903740.,  2925960.,
      2950720.,  2972960.,  2997780.,  3020040.,  3044920.,  3067200.,
      8851425.,  8885250.,  8925550.,  8959400.,  8999775.,  9033650.,
      9074100.,  9108000.,  12119975., 12167750., 12224310., 12272120.,
      12328785., 12376630., 12433400., 12481280., 12259415., 12307750.,
      12364870., 12413240., 12470465., 12518870., 12576200., 12624640.,
      6719580.,  6747400.,  6780000.,  6807840.,  6840500.,  6868360.,
      6901080.,  6928960.,  11141515., 11194750., 11255090., 11308360.,
      11368805., 11422110., 11482660., 11536000., 15118509., 15193626.,
      15278298., 15353464., 15438283., 15513498., 15598464., 15673728.,
      15269821., 15345722., 15431178., 15507128., 15592731., 15668730.,
      15754480., 15830528., 8253364.,  8297016.,  8345792.,  8389472.,
      8438332.,  8482040.,  8530984.,  8574720.,  6281025.,  6323250.,
      6369150.,  6411400.,  6457375.,  6499650.,  6545700.,  6588000.,
      8380295.,  8439830.,  8504230.,  8563800.,  8628305.,  8687910.,
      8752520.,  8812160.,  8457015.,  8517110.,  8582070.,  8642200.,
      8707265.,  8767430.,  8832600.,  8892800.,  4443740.,  4478280.,
      4515360.,  4549920.,  4587060.,  4621640.,  4658840.,  4693440.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2332645., 2341514., 2359938., 2368856., 2387427., 2396394., 2415112.,
      2424128., 2483957., 2493610., 2512818., 2522520., 2541875., 2551626.,
      2571128., 2580928., 4451013., 4470858., 4500258., 4520152., 4549699.,
      4569642., 4599336., 4619328., 4602325., 4622954., 4653138., 4673816.,
      4704147., 4724874., 4755352., 4776128., 8158157., 8197210., 8245818.,
      8284920., 8333675., 8372826., 8421728., 8460928., 8309469., 8349306.,
      8398698., 8438584., 8488123., 8528058., 8577744., 8617728., 3075757.,
      3101210., 3136218., 3161720., 3196875., 3222426., 3257728., 3283328.,
      2485693., 2507834., 2539530., 2561720., 2593563., 2615802., 2647792.,
      2670080., 4299701., 4318762., 4347378., 4366488., 4395251., 4414410.,
      4443320., 4462528., 4451013., 4470858., 4500258., 4520152., 4549699.,
      4569642., 4599336., 4619328., 6418069., 6448106., 6487698., 6517784.,
      6557523., 6587658., 6627544., 6657728., 6569381., 6600202., 6640578.,
      6671448., 6711971., 6742890., 6783560., 6814528.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x11x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1868625.,  1871650.,  1874675.,  1877700.,  1893650.,  1896700.,
      1899750.,  1902800.,  1918875.,  1921950.,  1925025.,  1928100.,
      1944300.,  1947400.,  1950500.,  1953600.,  2761535.,  2766190.,
      2770845.,  2775500.,  2797690.,  2802380.,  2807070.,  2811760.,
      2834125.,  2838850.,  2843575.,  2848300.,  2870840.,  2875600.,
      2880360.,  2885120.,  3039855.,  3045070.,  3050285.,  3055500.,
      3078250.,  3083500.,  3088750.,  3094000.,  3116925.,  3122210.,
      3127495.,  3132780.,  3155880.,  3161200.,  3166520.,  3171840.,
      1756620.,  1759800.,  1762980.,  1766160.,  1778880.,  1782080.,
      1785280.,  1788480.,  1801300.,  1804520.,  1807740.,  1810960.,
      1823880.,  1827120.,  1830360.,  1833600.,  4938675.,  4948790.,
      4958905.,  4969020.,  4993310.,  5003460.,  5013610.,  5023760.,
      5048225.,  5058410.,  5068595.,  5078780.,  5103420.,  5113640.,
      5123860.,  5134080.,  6920221.,  6934970.,  6949719.,  6964468.,
      6998278.,  7013076.,  7027874.,  7042672.,  7076727.,  7091574.,
      7106421.,  7121268.,  7155568.,  7170464.,  7185360.,  7200256.,
      7222061.,  7237594.,  7253127.,  7268660.,  7303254.,  7318836.,
      7334418.,  7350000.,  7384839.,  7400470.,  7416101.,  7431732.,
      7466816.,  7482496.,  7498176.,  7513856.,  4010020.,  4019176.,
      4028332.,  4037488.,  4056864.,  4066048.,  4075232.,  4084416.,
      4103932.,  4113144.,  4122356.,  4131568.,  4151224.,  4160464.,
      4169704.,  4178944.,  3618625.,  3630050.,  3641475.,  3652900.,
      3671650.,  3683100.,  3694550.,  3706000.,  3724875.,  3736350.,
      3747825.,  3759300.,  3778300.,  3789800.,  3801300.,  3812800.,
      4929295.,  4945710.,  4962125.,  4978540.,  5004650.,  5021100.,
      5037550.,  5054000.,  5080285.,  5096770.,  5113255.,  5129740.,
      5156200.,  5172720.,  5189240.,  5205760.,  5082175.,  5099150.,
      5116125.,  5133100.,  5159770.,  5176780.,  5193790.,  5210800.,
      5237645.,  5254690.,  5271735.,  5288780.,  5315800.,  5332880.,
      5349960.,  5367040.,  2717580.,  2727480.,  2737380.,  2747280.,
      2762240.,  2772160.,  2782080.,  2792000.,  2807060.,  2817000.,
      2826940.,  2836880.,  2852040.,  2862000.,  2871960.,  2881920.,
      9768825.,  9787250.,  9805675.,  9824100.,  9855450.,  9873900.,
      9892350.,  9910800.,  9942275.,  9960750.,  9979225.,  9997700.,
      10029300., 10047800., 10066300., 10084800., 13476855., 13503070.,
      13529285., 13555500., 13599250., 13625500., 13651750., 13678000.,
      13721925., 13748210., 13774495., 13800780., 13844880., 13871200.,
      13897520., 13923840., 13755175., 13781950., 13808725., 13835500.,
      13879810., 13906620., 13933430., 13960240., 14004725., 14031570.,
      14058415., 14085260., 14129920., 14156800., 14183680., 14210560.,
      7583980.,  7599480.,  7614980.,  7630480.,  7655520.,  7671040.,
      7686560.,  7702080.,  7727220.,  7742760.,  7758300.,  7773840.,
      7799080.,  7814640.,  7830200.,  7845760.,  9138027.,  9163558.,
      9189089.,  9214620.,  9254326.,  9279892.,  9305458.,  9331024.,
      9370905.,  9396506.,  9422107.,  9447708.,  9487764.,  9513400.,
      9539036.,  9564672.,  10172933., 10205578., 10238223., 10270868.,
      10322574., 10355268., 10387962., 10420656., 10472607., 10505350.,
      10538093., 10570836., 10623032., 10655824., 10688616., 10721408.,
      9309461.,  9340842.,  9372223.,  9403604.,  9454046.,  9485476.,
      9516906.,  9548336.,  9599023.,  9630502.,  9661981.,  9693460.,
      9744392.,  9775920.,  9807448.,  9838976.,  4985476.,  5003688.,
      5021900.,  5040112.,  5068544.,  5086784.,  5105024.,  5123264.,
      5151836.,  5170104.,  5188372.,  5206640.,  5235352.,  5253648.,
      5271944.,  5290240.,  1695849.,  1706290.,  1716731.,  1727172.,
      1744938.,  1755404.,  1765870.,  1776336.,  1794227.,  1804718.,
      1815209.,  1825700.,  1843716.,  1854232.,  1864748.,  1875264.,
      1629895.,  1641246.,  1652597.,  1663948.,  1684994.,  1696380.,
      1707766.,  1719152.,  1740373.,  1751794.,  1763215.,  1774636.,
      1796032.,  1807488.,  1818944.,  1830400.,  1534967.,  1544830.,
      1554693.,  1564556.,  1584114.,  1594012.,  1603910.,  1613808.,
      1633541.,  1643474.,  1653407.,  1663340.,  1683248.,  1693216.,
      1703184.,  1713152.,  788140.,   793976.,   799812.,   805648.,
      816544.,   822400.,   828256.,   834112.,   845108.,   850984.,
      856860.,   862736.,   873832.,   879728.,   885624.,   891520.,
      4536225.,  4544450.,  4552675.,  4560900.,  4582050.,  4590300.,
      4598550.,  4606800.,  4628075.,  4636350.,  4644625.,  4652900.,
      4674300.,  4682600.,  4690900.,  4699200.,  6379695.,  6391630.,
      6403565.,  6415500.,  6444970.,  6456940.,  6468910.,  6480880.,
      6510525.,  6522530.,  6534535.,  6546540.,  6576360.,  6588400.,
      6600440.,  6612480.,  6658015.,  6670510.,  6683005.,  6695500.,
      6725530.,  6738060.,  6750590.,  6763120.,  6793325.,  6805890.,
      6818455.,  6831020.,  6861400.,  6874000.,  6886600.,  6899200.,
      3724300.,  3731640.,  3738980.,  3746320.,  3763200.,  3770560.,
      3777920.,  3785280.,  3802260.,  3809640.,  3817020.,  3824400.,
      3841480.,  3848880.,  3856280.,  3863680.,  7857955.,  7875350.,
      7892745.,  7910140.,  7941710.,  7959140.,  7976570.,  7994000.,
      8025745.,  8043210.,  8060675.,  8078140.,  8110060.,  8127560.,
      8145060.,  8162560.,  10844141., 10869082., 10894023., 10918964.,
      10962966., 10987956., 11012946., 11037936., 11082183., 11107222.,
      11132261., 11157300., 11201792., 11226880., 11251968., 11277056.,
      11145981., 11171706., 11197431., 11223156., 11267942., 11293716.,
      11319490., 11345264., 11390295., 11416118., 11441941., 11467764.,
      11513040., 11538912., 11564784., 11590656., 6112484.,  6127464.,
      6142444.,  6157424.,  6182624.,  6197632.,  6212640.,  6227648.,
      6252988.,  6268024.,  6283060.,  6298096.,  6323576.,  6338640.,
      6353704.,  6368768.,  5121425.,  5138050.,  5154675.,  5171300.,
      5195250.,  5211900.,  5228550.,  5245200.,  5269275.,  5285950.,
      5302625.,  5319300.,  5343500.,  5360200.,  5376900.,  5393600.,
      6916735.,  6940430.,  6964125.,  6987820.,  7021210.,  7044940.,
      7068670.,  7092400.,  7125965.,  7149730.,  7173495.,  7197260.,
      7231000.,  7254800.,  7278600.,  7302400.,  7069615.,  7093870.,
      7118125.,  7142380.,  7176330.,  7200620.,  7224910.,  7249200.,
      7283325.,  7307650.,  7331975.,  7356300.,  7390600.,  7414960.,
      7439320.,  7463680.,  3753420.,  3767480.,  3781540.,  3795600.,
      3814720.,  3828800.,  3842880.,  3856960.,  3876180.,  3890280.,
      3904380.,  3918480.,  3937800.,  3951920.,  3966040.,  3980160.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x11x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1979173., 1988042., 1996911., 2005780., 2025006., 2033924., 2042842.,
      2051760., 2071231., 2080198., 2089165., 2098132., 2117848., 2126864.,
      2135880., 2144896., 2141749., 2151402., 2161055., 2170708., 2190718.,
      2200420., 2210122., 2219824., 2240079., 2249830., 2259581., 2269332.,
      2289832., 2299632., 2309432., 2319232., 3216901., 3230602., 3244303.,
      3258004., 3282062., 3295812., 3309562., 3323312., 3347615., 3361414.,
      3375213., 3389012., 3413560., 3427408., 3441256., 3455104., 3321109.,
      3334570., 3348031., 3361492., 3385310., 3398820., 3412330., 3425840.,
      3449903., 3463462., 3477021., 3490580., 3514888., 3528496., 3542104.,
      3555712., 3035917., 3049882., 3063847., 3077812., 3102134., 3116148.,
      3130162., 3144176., 3168743., 3182806., 3196869., 3210932., 3235744.,
      3249856., 3263968., 3278080., 3198493., 3213242., 3227991., 3242740.,
      3267846., 3282644., 3297442., 3312240., 3337591., 3352438., 3367285.,
      3382132., 3407728., 3422624., 3437520., 3452416., 2579949., 2592602.,
      2605255., 2617908., 2640918., 2653620., 2666322., 2679024., 2702279.,
      2715030., 2727781., 2740532., 2764032., 2776832., 2789632., 2802432.,
      2003197., 2014586., 2025975., 2037364., 2059110., 2070548., 2081986.,
      2093424., 2115415., 2126902., 2138389., 2149876., 2172112., 2183648.,
      2195184., 2206720., 3269365., 3284330., 3299295., 3314260., 3339582.,
      3354596., 3369610., 3384624., 3410191., 3425254., 3440317., 3455380.,
      3481192., 3496304., 3511416., 3526528., 3216901., 3230602., 3244303.,
      3258004., 3282062., 3295812., 3309562., 3323312., 3347615., 3361414.,
      3375213., 3389012., 3413560., 3427408., 3441256., 3455104., 1811925.,
      1823530., 1835135., 1846740., 1868702., 1880356., 1892010., 1903664.,
      1925871., 1937574., 1949277., 1960980., 1983432., 1995184., 2006936.,
      2018688., 1628389., 1638730., 1649071., 1659412., 1680110., 1690500.,
      1700890., 1711280., 1732223., 1742662., 1753101., 1763540., 1784728.,
      1795216., 1805704., 1816192.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      33790.,  49700.,  36910.,  73640.,  103488., 73850.,  52350.,
      71680.,  49800.,  150610., 207704., 145810., 193760., 265188.,
      184730., 115050., 154840., 105900., 267430., 365708., 254710.,
      313880., 426888., 295610., 177750., 238000., 162000.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {60613.,  65513.,  114513., 119413.,
                                         222313., 227213., 276213., 281113.,
                                         384013., 388913., 437913., 442813.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      66665.,  67580.,  97993.,  99400.,  72725.,  73820.,  144865., 147280.,
      203448., 206976., 145075., 147700., 102150., 104700., 139685., 143360.,
      96900.,  99600.,  296345., 301220., 408457., 415408., 286565., 291620.,
      380485., 387520., 520380., 530376., 362215., 369460., 224250., 230100.,
      301385., 309680., 205800., 211800., 526025., 534860., 718921., 731416.,
      500405., 509420., 616105., 627760., 837312., 853776., 579355., 591220.,
      346350., 355500., 463085., 476000., 314700., 324000.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      119413., 121226., 129017., 131026., 225057., 229026., 234661., 238826.,
      436345., 444626., 445949., 454426., 541989., 552426., 551593., 562226.,
      753277., 768026., 762881., 777826., 858921., 875826., 868525., 885626.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      132415.,  133330.,  134245.,  135160.,  194579.,  195986.,  197393.,
      198800.,  144355.,  145450.,  146545.,  147640.,  287315.,  289730.,
      292145.,  294560.,  403368.,  406896.,  410424.,  413952.,  287525.,
      290150.,  292775.,  295400.,  201750.,  204300.,  206850.,  209400.,
      275695.,  279370.,  283045.,  286720.,  191100.,  193800.,  196500.,
      199200.,  587815.,  592690.,  597565.,  602440.,  809963.,  816914.,
      823865.,  830816.,  568075.,  573130.,  578185.,  583240.,  753935.,
      760970.,  768005.,  775040.,  1030764., 1040760., 1050756., 1060752.,
      717185.,  724430.,  731675.,  738920.,  442650.,  448500.,  454350.,
      460200.,  594475.,  602770.,  611065.,  619360.,  405600.,  411600.,
      417600.,  423600.,  1043215., 1052050., 1060885., 1069720., 1425347.,
      1437842., 1450337., 1462832., 991795.,  1000810., 1009825., 1018840.,
      1220555., 1232210., 1243865., 1255520., 1658160., 1674624., 1691088.,
      1707552., 1146845., 1158710., 1170575., 1182440., 683550.,  692700.,
      701850.,  711000.,  913255.,  926170.,  939085.,  952000.,  620100.,
      629400.,  638700.,  648000.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      237013.,  238826.,  240639.,  242452.,  256025.,  258034.,  260043.,
      262052.,  446145.,  450114.,  454083.,  458052.,  465157.,  469322.,
      473487.,  477652.,  864409.,  872690.,  880971.,  889252.,  883421.,
      891898.,  900375.,  908852.,  1073541., 1083978., 1094415., 1104852.,
      1092553., 1103186., 1113819., 1124452., 1491805., 1506554., 1521303.,
      1536052., 1510817., 1525762., 1540707., 1555652., 1700937., 1717842.,
      1734747., 1751652., 1719949., 1737050., 1754151., 1771252.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      131590.,  135160.,  193634.,  198800.,  143830.,  147640.,  287945.,
      294560.,  404495.,  413952.,  288505.,  295400.,  203375.,  209400.,
      278145.,  286720.,  192975.,  199200.,  590950.,  602440.,  814562.,
      830816.,  571510.,  583240.,  759185.,  775040.,  1038359., 1060752.,
      722785.,  738920.,  447575.,  460200.,  601545.,  619360.,  410775.,
      423600.,  1050310., 1069720., 1435490., 1462832., 999190.,  1018840.,
      1230425., 1255520., 1672223., 1707552., 1157065., 1182440., 691775.,
      711000.,  924945.,  952000.,  628575.,  648000.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      236425.,  242452.,  255633.,  262052.,  447713.,  458052.,
      466921.,  477652.,  870289.,  889252.,  889497.,  908852.,
      1081577., 1104852., 1100785., 1124452., 1504153., 1536052.,
      1523361., 1555652., 1715441., 1751652., 1734649., 1771252.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      261380.,  263180.,  268490.,  270320.,  384496.,  387268.,  394786.,
      397600.,  285500.,  287660.,  293090.,  295280.,  571095.,  575890.,
      584290.,  589120.,  801983.,  808990.,  820848.,  827904.,  571795.,
      577010.,  585550.,  590800.,  401675.,  406750.,  413700.,  418800.,
      548975.,  556290.,  566090.,  573440.,  380575.,  385950.,  393000.,
      398400.,  1172180., 1181900., 1195130., 1204880., 1615264., 1629124.,
      1647730., 1661632., 1132940., 1143020., 1156370., 1166480., 1504335.,
      1518370., 1536010., 1550080., 2056775., 2076718., 2101512., 2121504.,
      1431115., 1445570., 1463350., 1477840., 883475.,  895150.,  908700.,
      920400.,  1186535., 1203090., 1222130., 1238720., 809575.,  821550.,
      835200.,  847200.,  2082980., 2100620., 2121770., 2139440., 2846032.,
      2870980., 2900674., 2925664., 1980380., 1998380., 2019650., 2037680.,
      2437575., 2460850., 2487730., 2511040., 3311567., 3344446., 3382176.,
      3415104., 2290435., 2314130., 2341150., 2364880., 1365275., 1383550.,
      1403700., 1422000., 1824095., 1849890., 1878170., 1904000., 1238575.,
      1257150., 1277400., 1296000.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      469273.,  472850.,  481278.,  484904.,  507297.,  511266.,  520086.,
      524104.,  887537.,  895426.,  908166.,  916104.,  925561.,  933842.,
      946974.,  955304.,  1724065., 1740578., 1761942., 1778504., 1762089.,
      1778994., 1800750., 1817704., 2142329., 2163154., 2188830., 2209704.,
      2180353., 2201570., 2227638., 2248904., 2978857., 3008306., 3042606.,
      3072104., 3016881., 3046722., 3081414., 3111304., 3397121., 3430882.,
      3469494., 3503304., 3435145., 3469298., 3508302., 3542504.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      520960.,  522760.,  524560.,  526360.,  535150.,  536980.,  538810.,
      540640.,  766220.,  768992.,  771764.,  774536.,  786758.,  789572.,
      792386.,  795200.,  568840.,  571000.,  573160.,  575320.,  583990.,
      586180.,  588370.,  590560.,  1137395., 1142190., 1146985., 1151780.,
      1163750., 1168580., 1173410., 1178240., 1596959., 1603966., 1610973.,
      1617980., 1634640., 1641696., 1648752., 1655808., 1138375., 1143590.,
      1148805., 1154020., 1165850., 1171100., 1176350., 1181600., 798275.,
      803350.,  808425.,  813500.,  822300.,  827400.,  832500.,  837600.,
      1090635., 1097950., 1105265., 1112580., 1124830., 1132180., 1139530.,
      1146880., 755775.,  761150.,  766525.,  771900.,  780600.,  786000.,
      791400.,  796800.,  2334640., 2344360., 2354080., 2363800., 2380510.,
      2390260., 2400010., 2409760., 3216668., 3230528., 3244388., 3258248.,
      3281558., 3295460., 3309362., 3323264., 2255800., 2265880., 2275960.,
      2286040., 2302630., 2312740., 2322850., 2332960., 2994635., 3008670.,
      3022705., 3036740., 3057950., 3072020., 3086090., 3100160., 4093607.,
      4113550., 4133493., 4153436., 4183032., 4203024., 4223016., 4243008.,
      2847775., 2862230., 2876685., 2891140., 2912210., 2926700., 2941190.,
      2955680., 1755275., 1766950., 1778625., 1790300., 1805700., 1817400.,
      1829100., 1840800., 2356515., 2373070., 2389625., 2406180., 2427670.,
      2444260., 2460850., 2477440., 1607175., 1619150., 1631125., 1643100.,
      1658400., 1670400., 1682400., 1694400., 4148320., 4165960., 4183600.,
      4201240., 4225870., 4243540., 4261210., 4278880., 5667116., 5692064.,
      5717012., 5741960., 5776358., 5801348., 5826338., 5851328., 3942760.,
      3960760., 3978760., 3996760., 4021270., 4039300., 4057330., 4075360.,
      4851875., 4875150., 4898425., 4921700., 4952150., 4975460., 4998770.,
      5022080., 6590255., 6623134., 6656013., 6688892., 6731424., 6764352.,
      6797280., 6830208., 4557175., 4580870., 4604565., 4628260., 4658570.,
      4682300., 4706030., 4729760., 2712275., 2730550., 2748825., 2767100.,
      2789100., 2807400., 2825700., 2844000., 3622395., 3648190., 3673985.,
      3699780., 3730510., 3756340., 3782170., 3808000., 2458575., 2477150.,
      2495725., 2514300., 2536200., 2554800., 2573400., 2592000.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      934969.,  938546.,  942123.,  945700.,  958930.,  962556.,  966182.,
      969808.,  1010625., 1014594., 1018563., 1022532., 1036154., 1040172.,
      1044190., 1048208., 1767185., 1775074., 1782963., 1790852., 1808394.,
      1816332., 1824270., 1832208., 1842841., 1851122., 1859403., 1867684.,
      1885618., 1893948., 1902278., 1910608., 3431617., 3448130., 3464643.,
      3481156., 3507322., 3523884., 3540446., 3557008., 3507273., 3524178.,
      3541083., 3557988., 3584546., 3601500., 3618454., 3635408., 4263833.,
      4284658., 4305483., 4326308., 4356786., 4377660., 4398534., 4419408.,
      4339489., 4360706., 4381923., 4403140., 4434010., 4455276., 4476542.,
      4497808., 5928265., 5957714., 5987163., 6016612., 6055714., 6085212.,
      6114710., 6144208., 6003921., 6033762., 6063603., 6093444., 6132938.,
      6162828., 6192718., 6222608., 6760481., 6794242., 6828003., 6861764.,
      6905178., 6938988., 6972798., 7006608., 6836137., 6870290., 6904443.,
      6938596., 6982402., 7016604., 7050806., 7085008.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      519310.,  526360.,  533470.,  540640.,  764330.,  774536.,  784826.,
      795200.,  567790.,  575320.,  582910.,  590560.,  1138655., 1151780.,
      1164975., 1178240., 1599213., 1617980., 1636845., 1655808., 1140335.,
      1154020., 1167775., 1181600., 801525.,  813500.,  825525.,  837600.,
      1095535., 1112580., 1129695., 1146880., 759525.,  771900.,  784325.,
      796800.,  2340910., 2363800., 2386750., 2409760., 3225866., 3258248.,
      3290714., 3323264., 2262670., 2286040., 2309470., 2332960., 3005135.,
      3036740., 3068415., 3100160., 4108797., 4153436., 4198173., 4243008.,
      2858975., 2891140., 2923375., 2955680., 1765125., 1790300., 1815525.,
      1840800., 2370655., 2406180., 2441775., 2477440., 1617525., 1643100.,
      1668725., 1694400., 4162510., 4201240., 4240030., 4278880., 5687402.,
      5741960., 5796602., 5851328., 3957550., 3996760., 4036030., 4075360.,
      4871615., 4921700., 4971855., 5022080., 6618381., 6688892., 6759501.,
      6830208., 4577615., 4628260., 4678975., 4729760., 2728725., 2767100.,
      2805525., 2844000., 3645775., 3699780., 3753855., 3808000., 2475525.,
      2514300., 2553125., 2592000.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      933793.,  945700.,  957705.,  969808.,  1009841., 1022532., 1035321.,
      1048208., 1770321., 1790852., 1811481., 1832208., 1846369., 1867684.,
      1889097., 1910608., 3443377., 3481156., 3519033., 3557008., 3519425.,
      3557988., 3596649., 3635408., 4279905., 4326308., 4372809., 4419408.,
      4355953., 4403140., 4450425., 4497808., 5952961., 6016612., 6080361.,
      6144208., 6029009., 6093444., 6157977., 6222608., 6789489., 6861764.,
      6934137., 7006608., 6865537., 6938596., 7011753., 7085008.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1035050.,  1038620.,  1049120.,  1052720.,  1063310.,  1066940.,
      1077620.,  1081280.,  1523158.,  1528660.,  1543528.,  1549072.,
      1564066.,  1569652.,  1584772.,  1590400.,  1131290.,  1135580.,
      1146320.,  1150640.,  1161470.,  1165820.,  1176740.,  1181120.,
      2267755.,  2277310.,  2293970.,  2303560.,  2320325.,  2329950.,
      2346820.,  2356480.,  3184461.,  3198426.,  3221946.,  3235960.,
      3259627.,  3273690.,  3297504.,  3311616.,  2270275.,  2280670.,
      2297610.,  2308040.,  2325085.,  2335550.,  2352700.,  2363200.,
      1592925.,  1603050.,  1616850.,  1627000.,  1640875.,  1651050.,
      1665000.,  1675200.,  2176475.,  2191070.,  2210530.,  2225160.,
      2244725.,  2259390.,  2279060.,  2293760.,  1508325.,  1519050.,
      1533050.,  1543800.,  1557875.,  1568650.,  1582800.,  1593600.,
      4662410.,  4681820.,  4708160.,  4727600.,  4754030.,  4773500.,
      4800020.,  4819520.,  6424054.,  6451732.,  6488776.,  6516496.,
      6553666.,  6581428.,  6618724.,  6646528.,  4505210.,  4525340.,
      4551920.,  4572080.,  4598750.,  4618940.,  4645700.,  4665920.,
      5982235.,  6010270.,  6045410.,  6073480.,  6108725.,  6136830.,
      6172180.,  6200320.,  8177757.,  8217594.,  8266986.,  8306872.,
      8356411.,  8396346.,  8446032.,  8486016.,  5689075.,  5717950.,
      5753370.,  5782280.,  5817805.,  5846750.,  5882380.,  5911360.,
      3506925.,  3530250.,  3557250.,  3580600.,  3607675.,  3631050.,
      3658200.,  3681600.,  4708235.,  4741310.,  4779250.,  4812360.,
      4850405.,  4883550.,  4921700.,  4954880.,  3211125.,  3235050.,
      3262250.,  3286200.,  3313475.,  3337450.,  3364800.,  3388800.,
      8289770.,  8325020.,  8367200.,  8402480.,  8444750.,  8480060.,
      8522420.,  8557760.,  11324950., 11374804., 11434024., 11483920.,
      11543266., 11593204., 11652676., 11702656., 7879130.,  7915100.,
      7957520.,  7993520.,  8036030.,  8072060.,  8114660.,  8150720.,
      9696715.,  9743230.,  9796850.,  9843400.,  9897125.,  9943710.,
      9997540.,  10044160., 13171053., 13236762., 13312026., 13377784.,
      13453195., 13519002., 13594560., 13660416., 9107875.,  9155230.,
      9209130.,  9256520.,  9310525.,  9357950.,  9412060.,  9459520.,
      5420925.,  5457450.,  5497650.,  5534200.,  5574475.,  5611050.,
      5651400.,  5688000.,  7239995.,  7291550.,  7347970.,  7399560.,
      7456085.,  7507710.,  7564340.,  7616000.,  4913925.,  4951050.,
      4991450.,  5028600.,  5069075.,  5106250.,  5146800.,  5184000.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1860481.,  1867586.,  1884246.,  1891400.,  1908207.,  1915410.,
      1932364.,  1939616.,  2011793.,  2019682.,  2037126.,  2045064.,
      2062655.,  2070642.,  2088380.,  2096416.,  3524913.,  3540642.,
      3565926.,  3581704.,  3607135.,  3622962.,  3648540.,  3664416.,
      3676225.,  3692738.,  3718806.,  3735368.,  3761583.,  3778194.,
      3804556.,  3821216.,  6853777.,  6886754.,  6929286.,  6962312.,
      7004991.,  7038066.,  7080892.,  7114016.,  7005089.,  7038850.,
      7082166.,  7115976.,  7159439.,  7193298.,  7236908.,  7270816.,
      8518209.,  8559810.,  8610966.,  8652616.,  8703919.,  8745618.,
      8797068.,  8838816.,  8669521.,  8711906.,  8763846.,  8806280.,
      8858367.,  8900850.,  8953084.,  8995616.,  11847073., 11905922.,
      11974326., 12033224., 12101775., 12160722., 12229420., 12288416.,
      11998385., 12058018., 12127206., 12186888., 12256223., 12315954.,
      12385436., 12445216., 13511505., 13578978., 13656006., 13723528.,
      13800703., 13868274., 13945596., 14013216., 13662817., 13731074.,
      13808886., 13877192., 13955151., 14023506., 14101612., 14170016.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      783970.,  787540.,  791110.,  794680.,  805424.,  809024.,  812624.,
      816224.,  827118.,  830748.,  834378.,  838008.,  849052.,  852712.,
      856372.,  860032.,  1223726., 1229228., 1234730., 1240232., 1255720.,
      1261264., 1266808., 1272352., 1288050., 1293636., 1299222., 1304808.,
      1320716., 1326344., 1331972., 1337600., 986994.,  991284.,  995574.,
      999864.,  1011392., 1015712., 1020032., 1024352., 1036030., 1040380.,
      1044730., 1049080., 1060908., 1065288., 1069668., 1074048., 2071939.,
      2081494., 2091049., 2100604., 2117678., 2127268., 2136858., 2146448.,
      2163697., 2173322., 2182947., 2192572., 2209996., 2219656., 2229316.,
      2238976., 3005965., 3019930., 3033895., 3047860., 3072182., 3086196.,
      3100210., 3114224., 3138791., 3152854., 3166917., 3180980., 3205792.,
      3219904., 3234016., 3248128., 2267627., 2278022., 2288417., 2298812.,
      2316630., 2327060., 2337490., 2347920., 2365913., 2376378., 2386843.,
      2397308., 2415476., 2425976., 2436476., 2446976., 2412333., 2422458.,
      2432583., 2442708., 2458622., 2468772., 2478922., 2489072., 2505111.,
      2515286., 2525461., 2535636., 2551800., 2562000., 2572200., 2582400.,
      3524787., 3538358., 3551929., 3565500., 3587230., 3600836., 3614442.,
      3628048., 3649953., 3663594., 3677235., 3690876., 3712956., 3726632.,
      3740308., 3753984., 1997797., 2006474., 2015151., 2023828., 2038518.,
      2047220., 2055922., 2064624., 2079439., 2088166., 2096893., 2105620.,
      2120560., 2129312., 2138064., 2146816., 896834.,  900884.,  904934.,
      908984.,  920208.,  924288.,  928368.,  932448.,  943822.,  947932.,
      952042.,  956152.,  967676.,  971816.,  975956.,  980096.,  1380814.,
      1386988., 1393162., 1399336., 1415496., 1421712., 1427928., 1434144.,
      1450514., 1456772., 1463030., 1469288., 1485868., 1492168., 1498468.,
      1504768., 1100882., 1105652., 1110422., 1115192., 1127200., 1132000.,
      1136800., 1141600., 1153758., 1158588., 1163418., 1168248., 1180556.,
      1185416., 1190276., 1195136., 2190003., 2200118., 2210233., 2220348.,
      2237982., 2248132., 2258282., 2268432., 2286241., 2296426., 2306611.,
      2316796., 2334780., 2345000., 2355220., 2365440., 3168541., 3183290.,
      3198039., 3212788., 3237894., 3252692., 3267490., 3282288., 3307639.,
      3322486., 3337333., 3352180., 3377776., 3392672., 3407568., 3422464.,
      2384155., 2395110., 2406065., 2417020., 2435398., 2446388., 2457378.,
      2468368., 2486921., 2497946., 2508971., 2519996., 2538724., 2549784.,
      2560844., 2571904., 2477757., 2487258., 2496759., 2506260., 2521550.,
      2531076., 2540602., 2550128., 2565543., 2575094., 2584645., 2594196.,
      2609736., 2619312., 2628888., 2638464., 2913763., 2925846., 2937929.,
      2950012., 2970254., 2982372., 2994490., 3006608., 3027025., 3039178.,
      3051331., 3063484., 3084076., 3096264., 3108452., 3120640., 1862517.,
      1871082., 1879647., 1888212., 1902790., 1911380., 1919970., 1928560.,
      1943263., 1951878., 1960493., 1969108., 1983936., 1992576., 2001216.,
      2009856., 1009698., 1014228., 1018758., 1023288., 1034992., 1039552.,
      1044112., 1048672., 1060526., 1065116., 1069706., 1074296., 1086300.,
      1090920., 1095540., 1100160., 1537902., 1544748., 1551594., 1558440.,
      1575272., 1582160., 1589048., 1595936., 1612978., 1619908., 1626838.,
      1633768., 1651020., 1657992., 1664964., 1671936., 1214770., 1220020.,
      1225270., 1230520., 1243008., 1248288., 1253568., 1258848., 1271486.,
      1276796., 1282106., 1287416., 1300204., 1305544., 1310884., 1316224.,
      2308067., 2318742., 2329417., 2340092., 2358286., 2368996., 2379706.,
      2390416., 2408785., 2419530., 2430275., 2441020., 2459564., 2470344.,
      2481124., 2491904., 3331117., 3346650., 3362183., 3377716., 3403606.,
      3419188., 3434770., 3450352., 3476487., 3492118., 3507749., 3523380.,
      3549760., 3565440., 3581120., 3596800., 2500683., 2512198., 2523713.,
      2535228., 2554166., 2565716., 2577266., 2588816., 2607929., 2619514.,
      2631099., 2642684., 2661972., 2673592., 2685212., 2696832., 2067533.,
      2075898., 2084263., 2092628., 2106782., 2115172., 2123562., 2131952.,
      2146231., 2154646., 2163061., 2171476., 2185880., 2194320., 2202760.,
      2211200., 2812179., 2824310., 2836441., 2848572., 2868862., 2881028.,
      2893194., 2905360., 2925825., 2938026., 2950227., 2962428., 2983068.,
      2995304., 3007540., 3019776., 1751813., 1760266., 1768719., 1777172.,
      1791638., 1800116., 1808594., 1817072., 1831663., 1840166., 1848669.,
      1857172., 1871888., 1880416., 1888944., 1897472.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1583425., 1590530., 1597635., 1604740., 1622202., 1629356., 1636510.,
      1643664., 1661371., 1668574., 1675777., 1682980., 1700932., 1708184.,
      1715436., 1722688., 1746001., 1753890., 1761779., 1769668., 1787914.,
      1795852., 1803790., 1811728., 1830219., 1838206., 1846193., 1854180.,
      1872916., 1880952., 1888988., 1897024., 3371761., 3387490., 3403219.,
      3418948., 3445034., 3460812., 3476590., 3492368., 3518699., 3534526.,
      3550353., 3566180., 3592756., 3608632., 3624508., 3640384., 3534337.,
      3550850., 3567363., 3583876., 3610746., 3627308., 3643870., 3660432.,
      3687547., 3704158., 3720769., 3737380., 3764740., 3781400., 3798060.,
      3814720., 1746001., 1753890., 1761779., 1769668., 1787914., 1795852.,
      1803790., 1811728., 1830219., 1838206., 1846193., 1854180., 1872916.,
      1880952., 1888988., 1897024., 1908577., 1917250., 1925923., 1934596.,
      1953626., 1962348., 1971070., 1979792., 1999067., 2007838., 2016609.,
      2025380., 2044900., 2053720., 2062540., 2071360., 3534337., 3550850.,
      3567363., 3583876., 3610746., 3627308., 3643870., 3660432., 3687547.,
      3704158., 3720769., 3737380., 3764740., 3781400., 3798060., 3814720.,
      3696913., 3714210., 3731507., 3748804., 3776458., 3793804., 3811150.,
      3828496., 3856395., 3873790., 3891185., 3908580., 3936724., 3954168.,
      3971612., 3989056., 1908577., 1917250., 1925923., 1934596., 1953626.,
      1962348., 1971070., 1979792., 1999067., 2007838., 2016609., 2025380.,
      2044900., 2053720., 2062540., 2071360., 2071153., 2080610., 2090067.,
      2099524., 2119338., 2128844., 2138350., 2147856., 2167915., 2177470.,
      2187025., 2196580., 2216884., 2226488., 2236092., 2245696., 3696913.,
      3714210., 3731507., 3748804., 3776458., 3793804., 3811150., 3828496.,
      3856395., 3873790., 3891185., 3908580., 3936724., 3954168., 3971612.,
      3989056., 3727905., 3745474., 3763043., 3780612., 3808538., 3826156.,
      3843774., 3861392., 3889563., 3907230., 3924897., 3942564., 3970980.,
      3988696., 4006412., 4024128.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      43899.,  54747.,  40410.,  95095.,  113435., 80710.,  67010.,
      78470.,  54400.,  194235., 227115., 159210., 249319., 289835.,
      201670., 146930., 169190., 115600., 344571., 399483., 278010.,
      403543., 466235., 322630., 226850., 259910., 176800.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {65660.,  70560.,  124460., 129360.,
                                         242060., 246960., 300860., 305760.,
                                         418460., 423360., 477260., 482160.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      86592.,  87798.,  107940., 109494., 79620.,  80820.,  187019., 190190.,
      222999., 226870., 158550., 161420., 130675., 134020., 152915., 156940.,
      105850., 108800., 382080., 388470., 446628., 454230., 312900., 318420.,
      489419., 498638., 568743., 579670., 395430., 403340., 286195., 293860.,
      329315., 338380., 224650., 231200., 677568., 689142., 785316., 798966.,
      546180., 556020., 791819., 807086., 914487., 932470., 632310., 645260.,
      441715., 453700., 505715., 519820., 343450., 353600.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      129360., 131320., 138964., 141120., 244608., 248920., 254212., 258720.,
      475104., 484120., 484708., 493920., 590352., 601720., 599956., 611520.,
      820848., 836920., 830452., 846720., 936096., 954520., 945700., 964320.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      171978.,  173184.,  174390.,  175596.,  214326.,  215880.,  217434.,
      218988.,  158040.,  159240.,  160440.,  161640.,  370867.,  374038.,
      377209.,  380380.,  442127.,  445998.,  449869.,  453740.,  314230.,
      317100.,  319970.,  322840.,  258005.,  261350.,  264695.,  268040.,
      301805.,  305830.,  309855.,  313880.,  208750.,  211700.,  214650.,
      217600.,  757770.,  764160.,  770550.,  776940.,  885654.,  893256.,
      900858.,  908460.,  620280.,  625800.,  631320.,  636840.,  969619.,
      978838.,  988057.,  997276.,  1126559., 1137486., 1148413., 1159340.,
      782950.,  790860.,  798770.,  806680.,  564725.,  572390.,  580055.,
      587720.,  649565.,  658630.,  667695.,  676760.,  442750.,  449300.,
      455850.,  462400.,  1343562., 1355136., 1366710., 1378284., 1556982.,
      1570632., 1584282., 1597932., 1082520., 1092360., 1102200., 1112040.,
      1568371., 1583638., 1598905., 1614172., 1810991., 1828974., 1846957.,
      1864940., 1251670., 1264620., 1277570., 1290520., 871445.,  883430.,
      895415.,  907400.,  997325.,  1011430., 1025535., 1039640., 676750.,
      686900.,  697050.,  707200.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      256760.,  258720.,  260680.,  262640.,  275772.,  277928.,  280084.,
      282240.,  484904.,  489216.,  493528.,  497840.,  503916.,  508424.,
      512932.,  517440.,  941192.,  950208.,  959224.,  968240.,  960204.,
      969416.,  978628.,  987840.,  1169336., 1180704., 1192072., 1203440.,
      1188348., 1199912., 1211476., 1223040., 1625624., 1641696., 1657768.,
      1673840., 1644636., 1660904., 1677172., 1693440., 1853768., 1872192.,
      1890616., 1909040., 1872780., 1891400., 1910020., 1928640.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      171132.,  175596.,  213528.,  218988.,  157620.,  161640.,  371938.,
      380380.,  443597.,  453740.,  315455.,  322840.,  260270.,  268040.,
      304605.,  313880.,  210875.,  217600.,  762108.,  776940.,  890904.,
      908460.,  624180.,  636840.,  976738.,  997276.,  1135085., 1159340.,
      789215.,  806680.,  571310.,  587720.,  657405.,  676760.,  448475.,
      462400.,  1353084., 1378284., 1568280., 1597932., 1090740., 1112040.,
      1581538., 1614172., 1826573., 1864940., 1262975., 1290520., 882350.,
      907400.,  1010205., 1039640., 686075.,  707200.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      256319.,  262640.,  275527.,  282240.,  486815.,  497840.,
      506023.,  517440.,  947807.,  968240.,  967015.,  987840.,
      1178303., 1203440., 1197511., 1223040., 1639295., 1673840.,
      1658503., 1693440., 1869791., 1909040., 1888999., 1928640.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      339888.,  342264.,  348780.,  351192.,  423990.,  427056.,  434868.,
      437976.,  312870.,  315240.,  320880.,  323280.,  737576.,  743876.,
      754418.,  760760.,  879501.,  887194.,  899738.,  907480.,  625205.,
      630910.,  639940.,  645680.,  513880.,  520540.,  529390.,  536080.,
      601195.,  609210.,  619710.,  627760.,  415875.,  421750.,  429300.,
      435200.,  1511472., 1524216., 1541100., 1553880., 1766646., 1781808.,
      1801716., 1816920., 1237350., 1248360., 1262640., 1273680., 1935080.,
      1953476., 1976114., 1994552., 2248365., 2270170., 2296826., 2318680.,
      1562645., 1578430., 1597540., 1613360., 1127320., 1142620., 1160110.,
      1175440., 1296715., 1314810., 1335390., 1353520., 883875.,  896950.,
      911700.,  924800.,  2683056., 2706168., 2733420., 2756568., 3109302.,
      3136560., 3168564., 3195864., 2161830., 2181480., 2204400., 2224080.,
      3132584., 3163076., 3197810., 3228344., 3617229., 3653146., 3693914.,
      3729880., 2500085., 2525950., 2555140., 2581040., 1740760., 1764700.,
      1790830., 1814800., 1992235., 2020410., 2051070., 2079280., 1351875.,
      1372150., 1394100., 1414400.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      508767.,  512638.,  521360.,  525280.,  546791.,  551054.,  560168.,
      564480.,  965055.,  973630.,  987056.,  995680.,  1003079., 1012046.,
      1025864., 1034880., 1877631., 1895614., 1918448., 1936480., 1915655.,
      1934030., 1957256., 1975680., 2333919., 2356606., 2384144., 2406880.,
      2371943., 2395022., 2422952., 2446080., 3246495., 3278590., 3315536.,
      3347680., 3284519., 3317006., 3354344., 3386880., 3702783., 3739582.,
      3781232., 3818080., 3740807., 3777998., 3820040., 3857280.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      677400.,  679776.,  682152.,  684528.,  695148.,  697560.,  699972.,
      702384.,  844914.,  847980.,  851046.,  854112.,  866628.,  869736.,
      872844.,  875952.,  623370.,  625740.,  628110.,  630480.,  639360.,
      641760.,  644160.,  646560.,  1468852., 1475152., 1481452., 1487752.,
      1502494., 1508836., 1515178., 1521520., 1751309., 1759002., 1766695.,
      1774388., 1791734., 1799476., 1807218., 1814960., 1244705., 1250410.,
      1256115., 1261820., 1274140., 1279880., 1285620., 1291360., 1021100.,
      1027760., 1034420., 1041080., 1052090., 1058780., 1065470., 1072160.,
      1194375., 1202390., 1210405., 1218420., 1231370., 1239420., 1247470.,
      1255520., 825875.,  831750.,  837625.,  843500.,  852700.,  858600.,
      864500.,  870400.,  3010200., 3022944., 3035688., 3048432., 3069420.,
      3082200., 3094980., 3107760., 3518130., 3533292., 3548454., 3563616.,
      3588228., 3603432., 3618636., 3633840., 2463690., 2474700., 2485710.,
      2496720., 2514240., 2525280., 2536320., 2547360., 3851764., 3870160.,
      3888556., 3906952., 3933790., 3952228., 3970666., 3989104., 4474925.,
      4496730., 4518535., 4540340., 4571798., 4593652., 4615506., 4637360.,
      3109505., 3125290., 3141075., 3156860., 3179260., 3195080., 3210900.,
      3226720., 2239340., 2254640., 2269940., 2285240., 2304890., 2320220.,
      2335550., 2350880., 2575335., 2593430., 2611525., 2629620., 2652650.,
      2670780., 2688910., 2707040., 1754675., 1767750., 1780825., 1793900.,
      1810300., 1823400., 1836500., 1849600., 5343000., 5366112., 5389224.,
      5412336., 5443692., 5466840., 5489988., 5513136., 6191346., 6218604.,
      6245862., 6273120., 6309828., 6337128., 6364428., 6391728., 4304010.,
      4323660., 4343310., 4362960., 4389120., 4408800., 4428480., 4448160.,
      6234676., 6265168., 6295660., 6326152., 6365086., 6395620., 6426154.,
      6456688., 7198541., 7234458., 7270375., 7306292., 7351862., 7387828.,
      7423794., 7459760., 4974305., 5000170., 5026035., 5051900., 5084380.,
      5110280., 5136180., 5162080., 3457580., 3481520., 3505460., 3529400.,
      3557690., 3581660., 3605630., 3629600., 3956295., 3984470., 4012645.,
      4040820., 4073930., 4102140., 4130350., 4158560., 2683475., 2703750.,
      2724025., 2744300., 2767900., 2788200., 2808500., 2828800.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1013663., 1017534., 1021405., 1025276., 1038800., 1042720., 1046640.,
      1050560., 1089319., 1093582., 1097845., 1102108., 1116024., 1120336.,
      1124648., 1128960., 1921535., 1930110., 1938685., 1947260., 1965488.,
      1974112., 1982736., 1991360., 1997191., 2006158., 2015125., 2024092.,
      2042712., 2051728., 2060744., 2069760., 3737279., 3755262., 3773245.,
      3791228., 3818864., 3836896., 3854928., 3872960., 3812935., 3831310.,
      3849685., 3868060., 3896088., 3914512., 3932936., 3951360., 4645151.,
      4667838., 4690525., 4713212., 4745552., 4768288., 4791024., 4813760.,
      4720807., 4743886., 4766965., 4790044., 4822776., 4845904., 4869032.,
      4892160., 6460895., 6492990., 6525085., 6557180., 6598928., 6631072.,
      6663216., 6695360., 6536551., 6569038., 6601525., 6634012., 6676152.,
      6708688., 6741224., 6773760., 7368767., 7405566., 7442365., 7479164.,
      7525616., 7562464., 7599312., 7636160., 7444423., 7481614., 7518805.,
      7555996., 7602840., 7640080., 7677320., 7714560.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      675708.,  684528.,  693420.,  702384.,  843318.,  854112.,  864990.,
      875952.,  622530.,  630480.,  638490.,  646560.,  1470994., 1487752.,
      1504594., 1521520., 1754249., 1774388., 1794625., 1814960., 1247155.,
      1261820., 1276555., 1291360., 1025630., 1041080., 1056590., 1072160.,
      1199975., 1218420., 1236935., 1255520., 830125.,  843500.,  856925.,
      870400.,  3018876., 3048432., 3078060., 3107760., 3528630., 3563616.,
      3598686., 3633840., 2471490., 2496720., 2522010., 2547360., 3866002.,
      3906952., 3947986., 3989104., 4491977., 4540340., 4588801., 4637360.,
      3122035., 3156860., 3191755., 3226720., 2252510., 2285240., 2318030.,
      2350880., 2591015., 2629620., 2668295., 2707040., 1766125., 1793900.,
      1821725., 1849600., 5362044., 5412336., 5462700., 5513136., 6213942.,
      6273120., 6332382., 6391728., 4320450., 4362960., 4405530., 4448160.,
      6261010., 6326152., 6391378., 6456688., 7229705., 7306292., 7382977.,
      7459760., 4996915., 5051900., 5106955., 5162080., 3479390., 3529400.,
      3579470., 3629600., 3982055., 4040820., 4099655., 4158560., 2702125.,
      2744300., 2786525., 2828800.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1012781., 1025276., 1037869., 1050560., 1088829., 1102108., 1115485.,
      1128960., 1925357., 1947260., 1969261., 1991360., 2001405., 2024092.,
      2046877., 2069760., 3750509., 3791228., 3832045., 3872960., 3826557.,
      3868060., 3909661., 3951360., 4663085., 4713212., 4763437., 4813760.,
      4739133., 4790044., 4841053., 4892160., 6488237., 6557180., 6626221.,
      6695360., 6564285., 6634012., 6703837., 6773760., 7400813., 7479164.,
      7557613., 7636160., 7476861., 7555996., 7635229., 7714560.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1346700.,  1351416.,  1364304.,  1369056.,  1382052.,  1386840.,
      1399944.,  1404768.,  1680546.,  1686636.,  1702092.,  1708224.,
      1723806.,  1729980.,  1745688.,  1751904.,  1240350.,  1245060.,
      1256220.,  1260960.,  1272210.,  1276980.,  1288320.,  1293120.,
      2929430.,  2941988.,  2962904.,  2975504.,  2996546.,  3009188.,
      3030356.,  3043040.,  3493161.,  3508498.,  3533390.,  3548776.,
      3573815.,  3589250.,  3614436.,  3629920.,  2482935.,  2494310.,
      2512230.,  2523640.,  2541665.,  2553110.,  2571240.,  2582720.,
      2037970.,  2051260.,  2068840.,  2082160.,  2099830.,  2113180.,
      2130940.,  2144320.,  2383955.,  2399950.,  2420810.,  2436840.,
      2457805.,  2473870.,  2494940.,  2511040.,  1648525.,  1660250.,
      1675250.,  1687000.,  1702075.,  1713850.,  1729000.,  1740800.,
      6012300.,  6037752.,  6071376.,  6096864.,  6130596.,  6156120.,
      6189960.,  6215520.,  7026978.,  7057260.,  7096908.,  7127232.,
      7167006.,  7197372.,  7237272.,  7267680.,  4920990.,  4942980.,
      4971420.,  4993440.,  5021970.,  5044020.,  5072640.,  5094720.,
      7695254.,  7732004.,  7777112.,  7813904.,  7859138.,  7895972.,
      7941332.,  7978208.,  8940393.,  8983954.,  9037070.,  9080680.,
      9133943.,  9177602.,  9231012.,  9274720.,  6212535.,  6244070.,
      6282150.,  6313720.,  6351905.,  6383510.,  6421800.,  6453440.,
      4474450.,  4505020.,  4539880.,  4570480.,  4605430.,  4636060.,
      4671100.,  4701760.,  5145875.,  5182030.,  5223050.,  5259240.,
      5300365.,  5336590.,  5377820.,  5414080.,  3506125.,  3532250.,
      3561650.,  3587800.,  3617275.,  3643450.,  3673000.,  3699200.,
      10677900., 10724088., 10778448., 10824672., 10879140., 10925400.,
      10979976., 11026272., 12373410., 12427884., 12491724., 12546240.,
      12610206., 12664764., 12728856., 12783456., 8601630.,  8640900.,
      8686620.,  8725920.,  8771730.,  8811060.,  8856960.,  8896320.,
      12461078., 12522020., 12591320., 12652304., 12721730., 12782756.,
      12852308., 12913376., 14387625., 14459410., 14540750., 14612584.,
      14694071., 14765954., 14847588., 14919520., 9942135.,  9993830.,
      10052070., 10103800., 10162145., 10213910., 10272360., 10324160.,
      6910930.,  6958780.,  7010920.,  7058800.,  7111030.,  7158940.,
      7211260.,  7259200.,  7907795.,  7964110.,  8025290.,  8081640.,
      8142925.,  8199310.,  8260700.,  8317120.,  5363725.,  5404250.,
      5448050.,  5488600.,  5532475.,  5573050.,  5617000.,  5657600.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2017869.,  2025562.,  2042810.,  2050552.,  2067947.,  2075738.,
      2093280.,  2101120.,  2169181.,  2177658.,  2195690.,  2204216.,
      2222395.,  2230970.,  2249296.,  2257920.,  3833613.,  3850714.,
      3877370.,  3894520.,  3921323.,  3938522.,  3965472.,  3982720.,
      3984925.,  4002810.,  4030250.,  4048184.,  4075771.,  4093754.,
      4121488.,  4139520.,  7465101.,  7501018.,  7546490.,  7582456.,
      7628075.,  7664090.,  7709856.,  7745920.,  7616413.,  7653114.,
      7699370.,  7736120.,  7782523.,  7819322.,  7865872.,  7902720.,
      9280845.,  9326170.,  9381050.,  9426424.,  9481451.,  9526874.,
      9582048.,  9627520.,  9432157.,  9478266.,  9533930.,  9580088.,
      9635899.,  9682106.,  9738064.,  9784320.,  12912333., 12976474.,
      13050170., 13114360., 13188203., 13252442., 13326432., 13390720.,
      13063645., 13128570., 13203050., 13268024., 13342651., 13407674.,
      13482448., 13547520., 14728077., 14801626., 14884730., 14958328.,
      15041579., 15115226., 15198624., 15272320., 14879389., 14953722.,
      15037610., 15111992., 15196027., 15270458., 15354640., 15429120.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2688684.,  2693400.,  2698116.,  2702832.,  2723856.,  2728608.,
      2733360.,  2738112.,  2759316.,  2764104.,  2768892.,  2773680.,
      2795064.,  2799888.,  2804712.,  2809536.,  3355002.,  3361092.,
      3367182.,  3373272.,  3398052.,  3404184.,  3410316.,  3416448.,
      3441438.,  3447612.,  3453786.,  3459960.,  3485160.,  3491376.,
      3497592.,  3503808.,  2475990.,  2480700.,  2485410.,  2490120.,
      2507700.,  2512440.,  2517180.,  2521920.,  2539650.,  2544420.,
      2549190.,  2553960.,  2571840.,  2576640.,  2581440.,  2586240.,
      5846302.,  5858860.,  5871418.,  5883976.,  5913208.,  5925808.,
      5938408.,  5951008.,  5980450.,  5993092.,  6005734.,  6018376.,
      6048028.,  6060712.,  6073396.,  6086080.,  6970985.,  6986322.,
      7001659.,  7016996.,  7051394.,  7066780.,  7082166.,  7097552.,
      7132195.,  7147630.,  7163065.,  7178500.,  7213388.,  7228872.,
      7244356.,  7259840.,  4954495.,  4965870.,  4977245.,  4988620.,
      5013050.,  5024460.,  5035870.,  5047280.,  5071885.,  5083330.,
      5094775.,  5106220.,  5131000.,  5142480.,  5153960.,  5165440.,
      4062650.,  4075940.,  4089230.,  4102520.,  4124360.,  4137680.,
      4151000.,  4164320.,  4186310.,  4199660.,  4213010.,  4226360.,
      4248500.,  4261880.,  4275260.,  4288640.,  4751915.,  4767910.,
      4783905.,  4799900.,  4825590.,  4841620.,  4857650.,  4873680.,
      4899545.,  4915610.,  4931675.,  4947740.,  4973780.,  4989880.,
      5005980.,  5022080.,  3285325.,  3297050.,  3308775.,  3320500.,
      3338750.,  3350500.,  3362250.,  3374000.,  3392375.,  3404150.,
      3415925.,  3427700.,  3446200.,  3458000.,  3469800.,  3481600.,
      11999148., 12024600., 12050052., 12075504., 12117264., 12142752.,
      12168240., 12193728., 12235668., 12261192., 12286716., 12312240.,
      12354360., 12379920., 12405480., 12431040., 14023674., 14053956.,
      14084238., 14114520., 14163492., 14193816., 14224140., 14254464.,
      14303646., 14334012., 14364378., 14394744., 14444136., 14474544.,
      14504952., 14535360., 9819990.,  9841980.,  9863970.,  9885960.,
      9920820.,  9942840.,  9964860.,  9986880.,  10021890., 10043940.,
      10065990., 10088040., 10123200., 10145280., 10167360., 10189440.,
      13795230., 13829932., 13864634., 13899336., 13950712., 13985456.,
      14020200., 14054944., 14106530., 14141316., 14176102., 14210888.,
      14262684., 14297512., 14332340., 14367168., 13358249., 13395666.,
      13433083., 13470500., 13526978., 13564444., 13601910., 13639376.,
      13696099., 13733614., 13771129., 13808644., 13865612., 13903176.,
      13940740., 13978304., 8783935.,  8810350.,  8836765.,  8863180.,
      8902650.,  8929100.,  8955550.,  8982000.,  9021645.,  9048130.,
      9074615.,  9101100.,  9140920.,  9167440.,  9193960.,  9220480.,
      2759994.,  2776228.,  2792462.,  2808696.,  2833480.,  2849744.,
      2866008.,  2882272.,  2907206.,  2923500.,  2939794.,  2956088.,
      2981172.,  2997496.,  3013820.,  3030144.,  2206955.,  2222630.,
      2238305.,  2253980.,  2279350.,  2295060.,  2310770.,  2326480.,
      2352025.,  2367770.,  2383515.,  2399260.,  2424980.,  2440760.,
      2456540.,  2472320.,  1318285.,  1329050.,  1339815.,  1350580.,
      1367870.,  1378660.,  1389450.,  1400240.,  1417655.,  1428470.,
      1439285.,  1450100.,  1467640.,  1478480.,  1489320.,  1500160.,
      4757676.,  4767000.,  4776324.,  4785648.,  4811280.,  4820640.,
      4830000.,  4839360.,  4865172.,  4874568.,  4883964.,  4893360.,
      4919352.,  4928784.,  4938216.,  4947648.,  5725818.,  5737284.,
      5748750.,  5760216.,  5790372.,  5801880.,  5813388.,  5824896.,
      5855262.,  5866812.,  5878362.,  5889912.,  5920488.,  5932080.,
      5943672.,  5955264.,  4107990.,  4116540.,  4125090.,  4133640.,
      4155060.,  4163640.,  4172220.,  4180800.,  4202370.,  4210980.,
      4219590.,  4228200.,  4249920.,  4258560.,  4267200.,  4275840.,
      7959070.,  7977004.,  7994938.,  8012872.,  8047480.,  8065456.,
      8083432.,  8101408.,  8136226.,  8154244.,  8172262.,  8190280.,
      8225308.,  8243368.,  8261428.,  8279488.,  9385705.,  9407314.,
      9428923.,  9450532.,  9491202.,  9512860.,  9534518.,  9556176.,
      9597091.,  9618798.,  9640505.,  9662212.,  9703372.,  9725128.,
      9746884.,  9768640.,  6607615.,  6623470.,  6639325.,  6655180.,
      6684090.,  6699980.,  6715870.,  6731760.,  6760845.,  6776770.,
      6792695.,  6808620.,  6837880.,  6853840.,  6869800.,  6885760.,
      5141690.,  5158820.,  5175950.,  5193080.,  5218760.,  5235920.,
      5253080.,  5270240.,  5296070.,  5313260.,  5330450.,  5347640.,
      5373620.,  5390840.,  5408060.,  5425280.,  5974955.,  5995430.,
      6015905.,  6036380.,  6066550.,  6087060.,  6107570.,  6128080.,
      6158425.,  6178970.,  6199515.,  6220060.,  6250580.,  6271160.,
      6291740.,  6312320.,  4107725.,  4122650.,  4137575.,  4152500.,
      4173950.,  4188900.,  4203850.,  4218800.,  4240375.,  4255350.,
      4270325.,  4285300.,  4307000.,  4322000.,  4337000.,  4352000.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4028045.,  4035738.,  4043431.,  4051124.,  4077878.,  4085620.,
      4093362.,  4101104.,  4128103.,  4135894.,  4143685.,  4151476.,
      4178720.,  4186560.,  4194400.,  4202240.,  4329885.,  4338362.,
      4346839.,  4355316.,  4382854.,  4391380.,  4399906.,  4408432.,
      4436215.,  4444790.,  4453365.,  4461940.,  4489968.,  4498592.,
      4507216.,  4515840.,  7650125.,  7667226.,  7684327.,  7701428.,
      7737590.,  7754740.,  7771890.,  7789040.,  7825447.,  7842646.,
      7859845.,  7877044.,  7913696.,  7930944.,  7948192.,  7965440.,
      7951965.,  7969850.,  7987735.,  8005620.,  8042566.,  8060500.,
      8078434.,  8096368.,  8133559.,  8151542.,  8169525.,  8187508.,
      8224944.,  8242976.,  8261008.,  8279040.,  14894285., 14930202.,
      14966119., 15002036., 15057014., 15092980., 15128946., 15164912.,
      15220135., 15256150., 15292165., 15328180., 15383648., 15419712.,
      15455776., 15491840., 15196125., 15232826., 15269527., 15306228.,
      15361990., 15398740., 15435490., 15472240., 15528247., 15565046.,
      15601845., 15638644., 15694896., 15731744., 15768592., 15805440.,
      11379085., 11414170., 11449255., 11484340., 11538486., 11573620.,
      11608754., 11643888., 11698279., 11733462., 11768645., 11803828.,
      11858464., 11893696., 11928928., 11964160., 9284765.,  9316538.,
      9348311.,  9380084.,  9430918.,  9462740.,  9494562.,  9526384.,
      9577463.,  9609334.,  9641205.,  9673076.,  9724400.,  9756320.,
      9788240.,  9820160.,  6442765.,  6456730.,  6470695.,  6484660.,
      6517686.,  6531700.,  6545714.,  6559728.,  6592999.,  6607062.,
      6621125.,  6635188.,  6668704.,  6682816.,  6696928.,  6711040.,
      6744605.,  6759354.,  6774103.,  6788852.,  6822662.,  6837460.,
      6852258.,  6867056.,  6901111.,  6915958.,  6930805.,  6945652.,
      6979952.,  6994848.,  7009744.,  7024640.,  10064845., 10088218.,
      10111591., 10134964., 10177398., 10200820., 10224242., 10247664.,
      10290343., 10313814., 10337285., 10360756., 10403680., 10427200.,
      10450720., 10474240., 10366685., 10390842., 10414999., 10439156.,
      10482374., 10506580., 10530786., 10554992., 10598455., 10622710.,
      10646965., 10671220., 10714928., 10739232., 10763536., 10787840.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      42265.,  61250.,  66038.,  37670.,  92960.,  129654., 134554., 74508.,
      66225.,  90160.,  92680.,  49650.,  190945., 262346., 267134., 146534.,
      245840., 335454., 340354., 185052., 146025., 196000., 198520., 105090.,
      339625., 463442., 468230., 255398., 398720., 541254., 546154., 295596.,
      225825., 301840., 304360., 160530.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {75754.,  80654.,  144354., 149254.,
                                         281554., 286454., 350154., 355054.,
                                         487354., 492254., 555954., 560854.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      83390.,  84530.,  120778.,  122500.,  130186.,  132076.,  74200.,
      75340.,  182875., 185920.,  254898.,  259308.,  264502.,  269108.,
      146314., 149016., 129225.,  132450.,  175700.,  180320.,  180600.,
      185360., 96530.,  99300.,   375710.,  381890.,  515914.,  524692.,
      525322., 534268., 287896.,  293068.,  482755.,  491680.,  658266.,
      670908., 667870., 680708.,  362698.,  370104.,  284625.,  292050.,
      381500., 392000., 386400.,  397040.,  204050.,  210180.,  668030.,
      679250., 911050., 926884.,  920458.,  936460.,  501592.,  510796.,
      782635., 797440., 1061634., 1082508., 1071238., 1092308., 579082.,
      591192., 440025., 451650.,  587300.,  603680.,  592200.,  608720.,
      311570., 321060.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      149254., 151508., 158858.,  161308.,  283710.,  288708.,
      293314., 298508., 552622.,  563108.,  562226.,  572908.,
      687078., 700308., 696682.,  710108.,  955990.,  974708.,
      965594., 984508., 1090446., 1111908., 1100050., 1121708.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      165640.,  166780.,  167920.,  169060.,  239834.,  241556.,  243278.,
      245000.,  258482.,  260372.,  262262.,  264152.,  147260.,  148400.,
      149540.,  150680.,  362705.,  365750.,  368795.,  371840.,  505386.,
      509796.,  514206.,  518616.,  524398.,  529004.,  533610.,  538216.,
      289926.,  292628.,  295330.,  298032.,  255225.,  258450.,  261675.,
      264900.,  346780.,  351400.,  356020.,  360640.,  356440.,  361200.,
      365960.,  370720.,  190290.,  193060.,  195830.,  198600.,  745240.,
      751420.,  757600.,  763780.,  1023050., 1031828., 1040606., 1049384.,
      1041698., 1050644., 1059590., 1068536., 570620.,  575792.,  580964.,
      586136.,  956585.,  965510.,  974435.,  983360.,  1303890., 1316532.,
      1329174., 1341816., 1322902., 1335740., 1348578., 1361416., 717990.,
      725396.,  732802.,  740208.,  561825.,  569250.,  576675.,  584100.,
      752500.,  763000.,  773500.,  784000.,  762160.,  772800.,  783440.,
      794080.,  401970.,  408100.,  414230.,  420360.,  1324840., 1336060.,
      1347280., 1358500., 1806266., 1822100., 1837934., 1853768., 1824914.,
      1840916., 1856918., 1872920., 993980.,  1003184., 1012388., 1021592.,
      1550465., 1565270., 1580075., 1594880., 2102394., 2123268., 2144142.,
      2165016., 2121406., 2142476., 2163546., 2184616., 1146054., 1158164.,
      1170274., 1182384., 868425.,  880050.,  891675.,  903300.,  1158220.,
      1174600., 1190980., 1207360., 1167880., 1184400., 1200920., 1217440.,
      613650.,  623140.,  632630.,  642120.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      296254.,  298508.,  300762.,  303016.,  315266.,  317716.,  320166.,
      322616.,  562422.,  567420.,  572418.,  577416.,  581434.,  586628.,
      591822.,  597016.,  1094758., 1105244., 1115730., 1126216., 1113770.,
      1124452., 1135134., 1145816., 1360926., 1374156., 1387386., 1400616.,
      1379938., 1393364., 1406790., 1420216., 1893262., 1911980., 1930698.,
      1949416., 1912274., 1931188., 1950102., 1969016., 2159430., 2180892.,
      2202354., 2223816., 2178442., 2200100., 2221758., 2243416.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      165040.,  169060.,  239204.,  245000.,  258020.,  264152.,  147128.,
      150680.,  363965.,  371840.,  507395.,  518616.,  526603.,  538216.,
      291340.,  298032.,  257525.,  264900.,  350175.,  360640.,  359975.,
      370720.,  192420.,  198600.,  749680.,  763780.,  1029476., 1049384.,
      1048292., 1068536., 574520.,  586136.,  963725.,  983360.,  1314131.,
      1341816., 1333339., 1361416., 724108.,  740208.,  568325.,  584100.,
      761775.,  784000.,  771575.,  794080.,  407460.,  420360.,  1334320.,
      1358500., 1819748., 1853768., 1838564., 1872920., 1001912., 1021592.,
      1563485., 1594880., 2120867., 2165016., 2140075., 2184616., 1156876.,
      1182384., 879125.,  903300.,  1173375., 1207360., 1183175., 1217440.,
      622500.,  642120.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      296107.,  303016.,  315315.,  322616.,  565019.,  577416.,
      584227.,  597016.,  1102843., 1126216., 1122051., 1145816.,
      1371755., 1400616., 1390963., 1420216., 1909579., 1949416.,
      1928787., 1969016., 2178491., 2223816., 2197699., 2243416.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      327830.,  330080.,  335840.,  338120.,  475006.,  478408.,  486556.,
      490000.,  512302.,  516040.,  524524.,  528304.,  292000.,  294256.,
      299080.,  301360.,  721875.,  727930.,  737590.,  743680.,  1006019.,
      1014790., 1028412., 1037232., 1044043., 1053206., 1067220., 1076432.,
      577304.,  582680.,  590660.,  596064.,  508625.,  515050.,  523350.,
      529800.,  691145.,  700350.,  712040.,  721280.,  710465.,  719950.,
      731920.,  741440.,  379320.,  384840.,  391660.,  397200.,  1487030.,
      1499360., 1515200., 1527560., 2041438., 2058952., 2081212., 2098768.,
      2078734., 2096584., 2119180., 2137072., 1138720., 1149040., 1161928.,
      1172272., 1909635., 1927450., 1948870., 1966720., 2603027., 2628262.,
      2658348., 2683632., 2641051., 2666678., 2697156., 2722832., 1433432.,
      1448216., 1465604., 1480416., 1121825., 1136650., 1153350., 1168200.,
      1502585., 1523550., 1547000., 1568000., 1521905., 1543150., 1566880.,
      1588160., 802680.,  814920.,  828460.,  840720.,  2646230., 2668640.,
      2694560., 2717000., 3607870., 3639496., 3675868., 3707536., 3645166.,
      3677128., 3713836., 3745840., 1985440., 2003824., 2024776., 2043184.,
      3097395., 3126970., 3160150., 3189760., 4200035., 4241734., 4288284.,
      4330032., 4238059., 4280150., 4327092., 4369232., 2289560., 2313752.,
      2340548., 2364768., 1735025., 1758250., 1783350., 1806600., 2314025.,
      2346750., 2381960., 2414720., 2333345., 2366350., 2401840., 2434880.,
      1226040., 1245000., 1265260., 1284240.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      587755.,  592214.,  601524.,  606032.,  625779.,  630630.,  640332.,
      645232.,  1120091., 1130038., 1144836., 1154832., 1158115., 1168454.,
      1183644., 1194032., 2184763., 2205686., 2231460., 2252432., 2222787.,
      2244102., 2270268., 2291632., 2717099., 2743510., 2774772., 2801232.,
      2755123., 2781926., 2813580., 2840432., 3781771., 3819158., 3861396.,
      3898832., 3819795., 3857574., 3900204., 3938032., 4314107., 4356982.,
      4404708., 4447632., 4352131., 4395398., 4443516., 4486832.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      653410.,  655660.,  657910.,  660160.,  669400.,  671680.,  673960.,
      676240.,  946610.,  950012.,  953414.,  956816.,  969668.,  973112.,
      976556.,  980000.,  1020866., 1024604., 1028342., 1032080., 1045268.,
      1049048., 1052828., 1056608., 581744.,  584000.,  586256.,  588512.,
      595880.,  598160.,  600440.,  602720.,  1437695., 1443750., 1449805.,
      1455860., 1469090., 1475180., 1481270., 1487360., 2003267., 2012038.,
      2020809., 2029580., 2048004., 2056824., 2065644., 2074464., 2078923.,
      2088086., 2097249., 2106412., 2125228., 2134440., 2143652., 2152864.,
      1149232., 1154608., 1159984., 1165360., 1175916., 1181320., 1186724.,
      1192128., 1010825., 1017250., 1023675., 1030100., 1040250., 1046700.,
      1053150., 1059600., 1373085., 1382290., 1391495., 1400700., 1414840.,
      1424080., 1433320., 1442560., 1411445., 1420930., 1430415., 1439900.,
      1454320., 1463840., 1473360., 1482880., 753120.,  758640.,  764160.,
      769680.,  777780.,  783320.,  788860.,  794400.,  2961730., 2974060.,
      2986390., 2998720., 3018040., 3030400., 3042760., 3055120., 4065362.,
      4082876., 4100390., 4117904., 4144868., 4162424., 4179980., 4197536.,
      4139618., 4157468., 4175318., 4193168., 4220468., 4238360., 4256252.,
      4274144., 2267120., 2277440., 2287760., 2298080., 2313512., 2323856.,
      2334200., 2344544., 3801455., 3819270., 3837085., 3854900., 3879890.,
      3897740., 3915590., 3933440., 5180819., 5206054., 5231289., 5256524.,
      5291412., 5316696., 5341980., 5367264., 5256475., 5282102., 5307729.,
      5333356., 5368636., 5394312., 5419988., 5445664., 2852080., 2866864.,
      2881648., 2896432., 2916396., 2931208., 2946020., 2960832., 2228825.,
      2243650., 2258475., 2273300., 2291850., 2306700., 2321550., 2336400.,
      2984205., 3005170., 3026135., 3047100., 3073000., 3094000., 3115000.,
      3136000., 3022565., 3043810., 3065055., 3086300., 3112480., 3133760.,
      3155040., 3176320., 1593120., 1605360., 1617600., 1629840., 1644660.,
      1656920., 1669180., 1681440., 5270050., 5292460., 5314870., 5337280.,
      5366680., 5389120., 5411560., 5434000., 7184114., 7215740., 7247366.,
      7278992., 7320068., 7351736., 7383404., 7415072., 7258370., 7290332.,
      7322294., 7354256., 7395668., 7427672., 7459676., 7491680., 3952496.,
      3970880., 3989264., 4007648., 4031144., 4049552., 4067960., 4086368.,
      6165215., 6194790., 6224365., 6253940., 6290690., 6320300., 6349910.,
      6379520., 8358371., 8400070., 8441769., 8483468., 8534820., 8576568.,
      8618316., 8660064., 8434027., 8476118., 8518209., 8560300., 8612044.,
      8654184., 8696324., 8738464., 4554928., 4579120., 4603312., 4627504.,
      4656876., 4681096., 4705316., 4729536., 3446825., 3470050., 3493275.,
      3516500., 3543450., 3566700., 3589950., 3613200., 4595325., 4628050.,
      4660775., 4693500., 4731160., 4763920., 4796680., 4829440., 4633685.,
      4666690., 4699695., 4732700., 4770640., 4803680., 4836720., 4869760.,
      2433120., 2452080., 2471040., 2490000., 2511540., 2530520., 2549500.,
      2568480.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1171051., 1175510., 1179969., 1184428., 1198540., 1203048., 1207556.,
      1212064., 1246707., 1251558., 1256409., 1261260., 1275764., 1280664.,
      1285564., 1290464., 2230235., 2240182., 2250129., 2260076., 2279676.,
      2289672., 2299668., 2309664., 2305891., 2316230., 2326569., 2336908.,
      2356900., 2367288., 2377676., 2388064., 4348603., 4369526., 4390449.,
      4411372., 4441948., 4462920., 4483892., 4504864., 4424259., 4445574.,
      4466889., 4488204., 4519172., 4540536., 4561900., 4583264., 5407787.,
      5434198., 5460609., 5487020., 5523084., 5549544., 5576004., 5602464.,
      5483443., 5510246., 5537049., 5563852., 5600308., 5627160., 5654012.,
      5680864., 7526155., 7563542., 7600929., 7638316., 7685356., 7722792.,
      7760228., 7797664., 7601811., 7639590., 7677369., 7715148., 7762580.,
      7800408., 7838236., 7876064., 8585339., 8628214., 8671089., 8713964.,
      8766492., 8809416., 8852340., 8895264., 8660995., 8704262., 8747529.,
      8790796., 8843716., 8887032., 8930348., 8973664.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      652210.,  660160.,  668170.,  676240.,  945350.,  956816.,  968366.,
      980000.,  1019942., 1032080., 1044302., 1056608., 581480.,  588512.,
      595592.,  602720.,  1440215., 1455860., 1471575., 1487360., 2007285.,
      2029580., 2051973., 2074464., 2083333., 2106412., 2129589., 2152864.,
      1152060., 1165360., 1178716., 1192128., 1015425., 1030100., 1044825.,
      1059600., 1379875., 1400700., 1421595., 1442560., 1418515., 1439900.,
      1461355., 1482880., 757380.,  769680.,  782020.,  794400.,  2970610.,
      2998720., 3026890., 3055120., 4078214., 4117904., 4157678., 4197536.,
      4152806., 4193168., 4233614., 4274144., 2274920., 2298080., 2321288.,
      2344544., 3815735., 3854900., 3894135., 3933440., 5201301., 5256524.,
      5311845., 5367264., 5277349., 5333356., 5389461., 5445664., 2864316.,
      2896432., 2928604., 2960832., 2241825., 2273300., 2304825., 2336400.,
      3002755., 3047100., 3091515., 3136000., 3041395., 3086300., 3131275.,
      3176320., 1604100., 1629840., 1655620., 1681440., 5289010., 5337280.,
      5385610., 5434000., 7211078., 7278992., 7346990., 7415072., 7285670.,
      7354256., 7422926., 7491680., 3968360., 4007648., 4046984., 4086368.,
      6191255., 6253940., 6316695., 6379520., 8395317., 8483468., 8571717.,
      8660064., 8471365., 8560300., 8649333., 8738464., 4576572., 4627504.,
      4678492., 4729536., 3468225., 3516500., 3564825., 3613200., 4625635.,
      4693500., 4761435., 4829440., 4664275., 4732700., 4801195., 4869760.,
      2450820., 2490000., 2529220., 2568480.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1170757., 1184428., 1198197., 1212064., 1246805., 1261260., 1275813.,
      1290464., 2235429., 2260076., 2284821., 2309664., 2311477., 2336908.,
      2362437., 2388064., 4364773., 4411372., 4458069., 4504864., 4440821.,
      4488204., 4535685., 4583264., 5429445., 5487020., 5544693., 5602464.,
      5505493., 5563852., 5622309., 5680864., 7558789., 7638316., 7717941.,
      7797664., 7634837., 7715148., 7795557., 7876064., 8623461., 8713964.,
      8804565., 8895264., 8699509., 8790796., 8882181., 8973664.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1299950., 1304420., 1315820., 1320320., 1331810., 1336340., 1347920.,
      1352480., 1883938., 1890700., 1906828., 1913632., 1929886., 1936732.,
      1953112., 1960000., 2032450., 2039884., 2056684., 2064160., 2081086.,
      2088604., 2105656., 2113216., 1158472., 1162960., 1172512., 1177024.,
      1186648., 1191184., 1200880., 1205440., 2868355., 2880430., 2899610.,
      2911720., 2931005., 2943150., 2962540., 2974720., 3997077., 4014570.,
      4041618., 4059160., 4086355., 4103946., 4131288., 4148928., 4148389.,
      4166666., 4194498., 4212824., 4240803., 4259178., 4287304., 4305728.,
      2293396., 2304120., 2319968., 2330720., 2346652., 2357432., 2373448.,
      2384256., 2018025., 2030850., 2047350., 2060200., 2076775., 2089650.,
      2106300., 2119200., 2741375., 2759750., 2782990., 2801400., 2824745.,
      2843190., 2866640., 2885120., 2818095., 2837030., 2860830., 2879800.,
      2903705., 2922710., 2946720., 2965760., 1503740., 1514760., 1528320.,
      1539360., 1552980., 1564040., 1577720., 1588800., 5916590., 5941220.,
      5972780., 5997440., 6029090., 6053780., 6085520., 6110240., 8121442.,
      8156428., 8200780., 8235808., 8280286., 8315356., 8359960., 8395072.,
      8269954., 8305612., 8350636., 8386336., 8431486., 8467228., 8512504.,
      8548288., 4529224., 4549840., 4575520., 4596160., 4621912., 4642576.,
      4668400., 4689088., 2565987., 2585198., 2611514., 2630760., 2657181.,
      2676462., 2702988., 2722304., 2764341., 2788138., 2821490., 2845336.,
      2878835., 2902730., 2936376., 2960320., 2561349., 2583882., 2615970.,
      2638552., 2670787., 2693418., 2725800., 2748480., 1357332., 1370488.,
      1388768., 1401952., 1420316., 1433528., 1451976., 1465216., 742025.,
      746050.,  753750.,  757800.,  765575.,  769650.,  777500.,  781600.,
      1053535., 1059590., 1070510., 1076600., 1087625., 1093750., 1104880.,
      1111040., 1130255., 1136870., 1148350., 1155000., 1166585., 1173270.,
      1184960., 1191680., 623740.,  627720.,  634240.,  638240.,  644820.,
      648840.,  655480.,  659520.,  3498350., 3512420., 3533420., 3547520.,
      3568610., 3582740., 3603920., 3618080., 4854178., 4874380., 4903948.,
      4924192., 4953886., 4974172., 5003992., 5024320., 5002690., 5023564.,
      5053804., 5074720., 5105086., 5126044., 5156536., 5177536., 2763592.,
      2775760., 2792992., 2805184., 2822488., 2834704., 2852080., 2864320.,
      5119555., 5142830., 5173210., 5196520., 5227005., 5250350., 5280940.,
      5304320., 7023317., 7056490., 7099218., 7132440., 7175315., 7208586.,
      7251608., 7284928., 7174629., 7208586., 7252098., 7286104., 7329763.,
      7363818., 7407624., 7441728., 3915156., 3934840., 3959648., 3979360.,
      4004252., 4023992., 4048968., 4068736., 3178025., 3198850., 3223350.,
      3244200., 3268775., 3289650., 3314300., 3335200., 4275775., 4305350.,
      4339790., 4369400., 4403945., 4433590., 4468240., 4497920., 4352495.,
      4382630., 4417630., 4447800., 4482905., 4513110., 4548320., 4578560.,
      2303740., 2321160., 2341120., 2358560., 2378580., 2396040., 2416120.,
      2433600.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2332645., 2341514., 2359938., 2368856., 2387427., 2396394., 2415112.,
      2424128., 2483957., 2493610., 2512818., 2522520., 2541875., 2551626.,
      2571128., 2580928., 4451013., 4470858., 4500258., 4520152., 4549699.,
      4569642., 4599336., 4619328., 4602325., 4622954., 4653138., 4673816.,
      4704147., 4724874., 4755352., 4776128., 7529605., 7568330., 7616610.,
      7655384., 7703811., 7742634., 7791208., 7830080., 6251413., 6286826.,
      6331794., 6367256., 6412371., 6447882., 6493144., 6528704., 2393957.,
      2414986., 2445570., 2466648., 2497379., 2518506., 2549384., 2570560.,
      2033269., 2050986., 2078258., 2096024., 2123443., 2141258., 2168824.,
      2186688., 5358885., 5383434., 5417538., 5442136., 5476387., 5501034.,
      5535432., 5560128., 5510197., 5535530., 5570418., 5595800., 5630835.,
      5656266., 5691448., 5716928., 7477253., 7512778., 7557858., 7593432.,
      7638659., 7674282., 7719656., 7755328., 7628565., 7664874., 7710738.,
      7747096., 7793107., 7829514., 7875672., 7912128.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x12x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      981094.,  985564.,  990034.,  994504.,  1006148., 1010648., 1015148.,
      1019648., 1031442., 1035972., 1040502., 1045032., 1056976., 1061536.,
      1066096., 1070656., 1501658., 1508420., 1515182., 1521944., 1538692.,
      1545496., 1552300., 1559104., 1576062., 1582908., 1589754., 1596600.,
      1613768., 1620656., 1627544., 1634432., 1658746., 1666180., 1673614.,
      1681048., 1698468., 1705944., 1713420., 1720896., 1738526., 1746044.,
      1753562., 1761080., 1778920., 1786480., 1794040., 1801600., 1087752.,
      1092240., 1096728., 1101216., 1111712., 1116224., 1120736., 1125248.,
      1135864., 1140400., 1144936., 1149472., 1160208., 1164768., 1169328.,
      1173888., 2249179., 2259718., 2270257., 2280796., 2298854., 2309428.,
      2320002., 2330576., 2348809., 2359418., 2370027., 2380636., 2399044.,
      2409688., 2420332., 2430976., 3018453., 3032362., 3046271., 3060180.,
      3084446., 3098404., 3112362., 3126320., 3150831., 3164838., 3178845.,
      3192852., 3217608., 3231664., 3245720., 3259776., 3181029., 3195722.,
      3210415., 3225108., 3250158., 3264900., 3279642., 3294384., 3319679.,
      3334470., 3349261., 3364052., 3389592., 3404432., 3419272., 3434112.,
      2054980., 2063656., 2072332., 2081008., 2095808., 2104512., 2113216.,
      2121920., 2136860., 2145592., 2154324., 2163056., 2178136., 2186896.,
      2195656., 2204416., 1035193., 1041362., 1047531., 1053700., 1065658.,
      1071852., 1078046., 1084240., 1096323., 1102542., 1108761., 1114980.,
      1127188., 1133432., 1139676., 1145920., 1120567., 1128190., 1135813.,
      1143436., 1159218., 1166876., 1174534., 1182192., 1198149., 1205842.,
      1213535., 1221228., 1237360., 1245088., 1252816., 1260544., 1248871.,
      1257054., 1265237., 1273420., 1289762., 1297980., 1306198., 1314416.,
      1330933., 1339186., 1347439., 1355692., 1372384., 1380672., 1388960.,
      1397248., 778476.,  783352.,  788228.,  793104.,  803040.,  807936.,
      812832.,  817728.,  827764.,  832680.,  837596.,  842512.,  852648.,
      857584.,  862520.,  867456.,  2109734., 2119004., 2128274., 2137544.,
      2153988., 2163288., 2172588., 2181888., 2198482., 2207812., 2217142.,
      2226472., 2243216., 2252576., 2261936., 2271296., 3072538., 3086020.,
      3099502., 3112984., 3136452., 3149976., 3163500., 3177024., 3200702.,
      3214268., 3227834., 3241400., 3265288., 3278896., 3292504., 3306112.,
      3229626., 3243780., 3257934., 3272088., 3296228., 3310424., 3324620.,
      3338816., 3363166., 3377404., 3391642., 3405880., 3430440., 3444720.,
      3459000., 3473280., 2033672., 2042000., 2050328., 2058656., 2072992.,
      2081344., 2089696., 2098048., 2112504., 2120880., 2129256., 2137632.,
      2152208., 2160608., 2169008., 2177408., 2186171., 2195654., 2205137.,
      2214620., 2231622., 2241140., 2250658., 2260176., 2277353., 2286906.,
      2296459., 2306012., 2323364., 2332952., 2342540., 2352128., 2275189.,
      2287210., 2299231., 2311252., 2333630., 2345700., 2357770., 2369840.,
      2392463., 2404582., 2416701., 2428820., 2451688., 2463856., 2476024.,
      2488192., 2084485., 2096266., 2108047., 2119828., 2141966., 2153796.,
      2165626., 2177456., 2199839., 2211718., 2223597., 2235476., 2258104.,
      2270032., 2281960., 2293888., 1159364., 1166376., 1173388., 1180400.,
      1193536., 1200576., 1207616., 1214656., 1227932., 1235000., 1242068.,
      1249136., 1262552., 1269648., 1276744., 1283840., 1054553., 1058578.,
      1062603., 1066628., 1076442., 1080492., 1084542., 1088592., 1098531.,
      1102606., 1106681., 1110756., 1120820., 1124920., 1129020., 1133120.,
      1650967., 1657022., 1663077., 1669132., 1683346., 1689436., 1695526.,
      1701616., 1716005., 1722130., 1728255., 1734380., 1748944., 1755104.,
      1761264., 1767424., 1779271., 1785886., 1792501., 1799116., 1813890.,
      1820540., 1827190., 1833840., 1848789., 1855474., 1862159., 1868844.,
      1883968., 1890688., 1897408., 1904128., 1243500., 1247480., 1251460.,
      1255440., 1264480., 1268480., 1272480., 1276480., 1285620., 1289640.,
      1293660., 1297680., 1306920., 1310960., 1315000., 1319040., 2373094.,
      2382044., 2390994., 2399944., 2416068., 2425048., 2434028., 2443008.,
      2459282., 2468292., 2477302., 2486312., 2502736., 2511776., 2520816.,
      2529856., 3520602., 3532100., 3543598., 3555096., 3576580., 3588120.,
      3599660., 3611200., 3632894., 3644476., 3656058., 3667640., 3689544.,
      3701168., 3712792., 3724416., 2708986., 2719108., 2729230., 2739352.,
      2759460., 2769624., 2779788., 2789952., 2810270., 2820476., 2830682.,
      2840888., 2861416., 2871664., 2881912., 2892160., 1482504., 1488528.,
      1494552., 1500576., 1512608., 1518656., 1524704., 1530752., 1542904.,
      1548976., 1555048., 1561120., 1573392., 1579488., 1585584., 1591680.,
      1368987., 1376902., 1384817., 1392732., 1408166., 1416116., 1424066.,
      1432016., 1447625., 1455610., 1463595., 1471580., 1487364., 1495384.,
      1503404., 1511424., 1867797., 1877930., 1888063., 1898196., 1918686.,
      1928868., 1939050., 1949232., 1969967., 1980198., 1990429., 2000660.,
      2021640., 2031920., 2042200., 2052480., 1979173., 1988042., 1996911.,
      2005780., 2025006., 2033924., 2042842., 2051760., 2071231., 2080198.,
      2089165., 2098132., 2117848., 2126864., 2135880., 2144896., 1279556.,
      1284904., 1290252., 1295600., 1307072., 1312448., 1317824., 1323200.,
      1334812., 1340216., 1345620., 1351024., 1362776., 1368208., 1373640.,
      1379072., 1964793., 1972818., 1980843., 1988868., 2002682., 2010732.,
      2018782., 2026832., 2040771., 2048846., 2056921., 2064996., 2079060.,
      2087160., 2095260., 2103360., 2934007., 2945662., 2957317., 2968972.,
      2988786., 3000476., 3012166., 3023856., 3043845., 3055570., 3067295.,
      3079020., 3099184., 3110944., 3122704., 3134464., 3062311., 3074526.,
      3086741., 3098956., 3119330., 3131580., 3143830., 3156080., 3176629.,
      3188914., 3201199., 3213484., 3234208., 3246528., 3258848., 3271168.,
      2040300., 2047480., 2054660., 2061840., 2074080., 2081280., 2088480.,
      2095680., 2108020., 2115240., 2122460., 2129680., 2142120., 2149360.,
      2156600., 2163840.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x12x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4656421.,  4665290.,  4674159.,  4683028.,  4710958.,  4719876.,
      4728794.,  4737712.,  4765887.,  4774854.,  4783821.,  4792788.,
      4821208.,  4830224.,  4839240.,  4848256.,  4958261.,  4967914.,
      4977567.,  4987220.,  5015934.,  5025636.,  5035338.,  5045040.,
      5073999.,  5083750.,  5093501.,  5103252.,  5132456.,  5142256.,
      5152056.,  5161856.,  8882181.,  8902026.,  8921871.,  8941716.,
      8980622.,  9000516.,  9020410.,  9040304.,  9079455.,  9099398.,
      9119341.,  9139284.,  9178680.,  9198672.,  9218664.,  9238656.,
      9184021.,  9204650.,  9225279.,  9245908.,  9285598.,  9306276.,
      9326954.,  9347632.,  9387567.,  9408294.,  9429021.,  9449748.,
      9489928.,  9510704.,  9531480.,  9552256.,  15020485., 15059210.,
      15097935., 15136660., 15194446., 15233220., 15271994., 15310768.,
      15368799., 15407622., 15446445., 15485268., 15543544., 15582416.,
      15621288., 15660160., 12467413., 12502826., 12538239., 12573652.,
      12628126., 12663588., 12699050., 12734512., 12789231., 12824742.,
      12860253., 12895764., 12950728., 12986288., 13021848., 13057408.,
      4766885.,  4787914.,  4808943.,  4829972.,  4870062.,  4891140.,
      4912218.,  4933296.,  4973631.,  4994758.,  5015885.,  5037012.,
      5077592.,  5098768.,  5119944.,  5141120.,  4048821.,  4066538.,
      4084255.,  4101972.,  4138750.,  4156516.,  4174282.,  4192048.,
      4229071.,  4246886.,  4264701.,  4282516.,  4319784.,  4337648.,
      4355512.,  4373376.,  10693221., 10717770., 10742319., 10766868.,
      10810478., 10835076., 10859674., 10884272., 10928127., 10952774.,
      10977421., 11002068., 11046168., 11070864., 11095560., 11120256.,
      10995061., 11020394., 11045727., 11071060., 11115454., 11140836.,
      11166218., 11191600., 11236239., 11261670., 11287101., 11312532.,
      11357416., 11382896., 11408376., 11433856., 14918981., 14954506.,
      14990031., 15025556., 15080142., 15115716., 15151290., 15186864.,
      15241695., 15277318., 15312941., 15348564., 15403640., 15439312.,
      15474984., 15510656., 15220821., 15257130., 15293439., 15329748.,
      15385118., 15421476., 15457834., 15494192., 15549807., 15586214.,
      15622621., 15659028., 15714888., 15751344., 15787800., 15824256.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      24525.,  36890.,  27925.,  63630.,  90013.,  64610.,  103670., 143913.,
      101570., 42110.,  56602.,  38550.,  151575., 209370., 147275., 203770.,
      278663., 193970., 243810., 332563., 230930., 89850.,  119126., 80130.,
      278625., 381850., 266625., 343910., 467313., 323330., 383950., 521213.,
      360290., 137590., 181650., 121710.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {60613.,  65513.,  114513., 119413.,
                                         249263., 254163., 303163., 308063.,
                                         437913., 442813., 491813., 496713.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      48425.,  49050.,  72800.,  73780.,  55075.,  55850.,  125230.,  127260.,
      177037., 180026., 126980., 129220., 203770., 207340., 282681.,  287826.,
      199360., 203140., 81630.,  84220.,  109494., 113204., 74390.,   77100.,
      298675., 303150., 412370., 418740., 289925., 294550., 400120.,  407540.,
      546791., 557326., 380310., 387940., 478660., 487620., 652435.,  665126.,
      452690., 461860., 174030., 179700., 230230., 238252., 154470.,  160260.,
      548925., 557250., 751940., 763700., 524775., 533250., 675010.,  687820.,
      916545., 934626., 633640., 646660., 753550., 767900., 1022189., 1042426.,
      706020., 720580., 266430., 275180., 350966., 363300., 234550.,  243420.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      119413., 121226., 129017., 131026., 225057., 229026., 234661., 238826.,
      489167., 498526., 498771., 508326., 594811., 606326., 604415., 616126.,
      858921., 875826., 868525., 885626., 964565., 983626., 974169., 993426.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      96225.,   96850.,   97475.,   98100.,   144620.,  145600.,  146580.,
      147560.,  109375.,  110150.,  110925.,  111700.,  248430.,  250460.,
      252490.,  254520.,  351085.,  354074.,  357063.,  360052.,  251720.,
      253960.,  256200.,  258440.,  403970.,  407540.,  411110.,  414680.,
      560217.,  565362.,  570507.,  575652.,  394940.,  398720.,  402500.,
      406280.,  160670.,  163260.,  165850.,  168440.,  215278.,  218988.,
      222698.,  226408.,  146070.,  148780.,  151490.,  154200.,  592875.,
      597350.,  601825.,  606300.,  818370.,  824740.,  831110.,  837480.,
      575225.,  579850.,  584475.,  589100.,  792820.,  800240.,  807660.,
      815080.,  1083047., 1093582., 1104117., 1114652., 752990.,  760620.,
      768250.,  775880.,  948360.,  957320.,  966280.,  975240.,  1292179.,
      1304870., 1317561., 1330252., 896210.,  905380.,  914550.,  923720.,
      342390.,  348060.,  353730.,  359400.,  452438.,  460460.,  468482.,
      476504.,  303150.,  308940.,  314730.,  320520.,  1089525., 1097850.,
      1106175., 1114500., 1492120., 1503880., 1515640., 1527400., 1041075.,
      1049550., 1058025., 1066500., 1337210., 1350020., 1362830., 1375640.,
      1815009., 1833090., 1851171., 1869252., 1254260., 1267280., 1280300.,
      1293320., 1492750., 1507100., 1521450., 1535800., 2024141., 2044378.,
      2064615., 2084852., 1397480., 1412040., 1426600., 1441160., 524110.,
      532860.,  541610.,  550360.,  689598.,  701932.,  714266.,  726600.,
      460230.,  469100.,  477970.,  486840.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      237013.,  238826.,  240639.,  242452.,  256025.,  258034.,  260043.,
      262052.,  446145.,  450114.,  454083.,  458052.,  465157.,  469322.,
      473487.,  477652.,  968975.,  978334.,  987693.,  997052.,  987987.,
      997542.,  1007097., 1016652., 1178107., 1189622., 1201137., 1212652.,
      1197119., 1208830., 1220541., 1232252., 1700937., 1717842., 1734747.,
      1751652., 1719949., 1737050., 1754151., 1771252., 1910069., 1929130.,
      1948191., 1967252., 1929081., 1948338., 1967595., 1986852.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      95225.,   98100.,   143395.,  147560.,  108625.,  111700.,  248675.,
      254520.,  351673.,  360052.,  252315.,  258440.,  405755.,  414680.,
      562961.,  575652.,  397075.,  406280.,  162660.,  168440.,  218204.,
      226408.,  148260.,  154200.,  595725.,  606300.,  822535.,  837480.,
      578325.,  589100.,  798455.,  815080.,  1091181., 1114652., 758975.,
      775880.,  955535.,  975240.,  1302469., 1330252., 903735.,  923720.,
      347460.,  359400.,  459676.,  476504.,  308420.,  320520.,  1096225.,
      1114500., 1501675., 1527400., 1048025., 1066500., 1348235., 1375640.,
      1830689., 1869252., 1265635., 1293320., 1505315., 1535800., 2041977.,
      2084852., 1410395., 1441160., 532260.,  550360.,  701148.,  726600.,
      468580.,  486840.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      236425.,  242452.,  255633.,  262052.,  447713.,  458052.,
      466921.,  477652.,  975933.,  997052.,  995141.,  1016652.,
      1187221., 1212652., 1206429., 1232252., 1715441., 1751652.,
      1734649., 1771252., 1926729., 1967252., 1945937., 1986852.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      189225.,  190450.,  194950.,  196200.,  284865.,  286790.,  293160.,
      295120.,  215725.,  217250.,  221850.,  223400.,  493325.,  497350.,
      504980.,  509040.,  697417.,  703346.,  714126.,  720104.,  500185.,
      504630.,  512400.,  516880.,  804405.,  811510.,  822220.,  829360.,
      1115681., 1125922., 1141014., 1151304., 786625.,  794150.,  805000.,
      812560.,  320160.,  325320.,  331700.,  336880.,  429016.,  436408.,
      445396.,  452816.,  291120.,  296520.,  302980.,  308400.,  1182525.,
      1191450., 1203650., 1212600., 1632365., 1645070., 1662220., 1674960.,
      1147425., 1156650., 1168950., 1178200., 1582105., 1596910., 1615320.,
      1630160., 2161341., 2182362., 2208234., 2229304., 1502725., 1517950.,
      1536500., 1551760., 1893185., 1911070., 1932560., 1950480., 2579605.,
      2604938., 2635122., 2660504., 1789165., 1807470., 1829100., 1847440.,
      683600.,  694920.,  707460.,  718800.,  903336.,  919352.,  936964.,
      953008.,  605280.,  616840.,  629460.,  641040.,  2175825., 2192450.,
      2212350., 2229000., 2979865., 3003350., 3031280., 3054800., 2079125.,
      2096050., 2116050., 2133000., 2670885., 2696470., 2725660., 2751280.,
      3625265., 3661378., 3702342., 3738504., 2505265., 2531270., 2560600.,
      2586640., 2981965., 3010630., 3042900., 3071600., 4043529., 4083954.,
      4129230., 4169704., 2791705., 2820790., 2853200., 2882320., 1047040.,
      1064520., 1083220., 1100720., 1377656., 1402296., 1428532., 1453200.,
      919440.,  937160.,  955940.,  973680.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      469273.,  472850.,  481278.,  484904.,  507297.,  511266.,  520086.,
      524104.,  887537.,  895426.,  908166.,  916104.,  925561.,  933842.,
      946974.,  955304.,  1933197., 1951866., 1975386., 1994104., 1971221.,
      1990282., 2014194., 2033304., 2351461., 2374442., 2402274., 2425304.,
      2389485., 2412858., 2441082., 2464504., 3397121., 3430882., 3469494.,
      3503304., 3435145., 3469298., 3508302., 3542504., 3815385., 3853458.,
      3896382., 3934504., 3853409., 3891874., 3935190., 3973704.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      377225.,  378450.,  379675.,  380900.,  388650.,  389900.,  391150.,
      392400.,  567805.,  569730.,  571655.,  573580.,  584360.,  586320.,
      588280.,  590240.,  429925.,  431450.,  432975.,  434500.,  442150.,
      443700.,  445250.,  446800.,  982625.,  986650.,  990675.,  994700.,
      1005900., 1009960., 1014020., 1018080., 1388905., 1394834., 1400763.,
      1406692., 1422274., 1428252., 1434230., 1440208., 995925.,  1000370.,
      1004815., 1009260., 1020320., 1024800., 1029280., 1033760., 1601705.,
      1608810., 1615915., 1623020., 1637300., 1644440., 1651580., 1658720.,
      2221121., 2231362., 2241603., 2251844., 2271738., 2282028., 2292318.,
      2302608., 1565725., 1573250., 1580775., 1588300., 1602440., 1610000.,
      1617560., 1625120., 635160.,  640320.,  645480.,  650640.,  658220.,
      663400.,  668580.,  673760.,  850640.,  858032.,  865424.,  872816.,
      883372.,  890792.,  898212.,  905632.,  576840.,  582240.,  587640.,
      593040.,  600540.,  605960.,  611380.,  616800.,  2356125., 2365050.,
      2373975., 2382900., 2398350., 2407300., 2416250., 2425200., 3252025.,
      3264730., 3277435., 3290140., 3311700., 3324440., 3337180., 3349920.,
      2285625., 2294850., 2304075., 2313300., 2328650., 2337900., 2347150.,
      2356400., 3149405., 3164210., 3179015., 3193820., 3215800., 3230640.,
      3245480., 3260320., 4301661., 4322682., 4343703., 4364724., 4395398.,
      4416468., 4437538., 4458608., 2990225., 3005450., 3020675., 3035900.,
      3057740., 3073000., 3088260., 3103520., 3768485., 3786370., 3804255.,
      3822140., 3847200., 3865120., 3883040., 3900960., 5133877., 5159210.,
      5184543., 5209876., 5244862., 5270244., 5295626., 5321008., 3560025.,
      3578330., 3596635., 3614940., 3639860., 3658200., 3676540., 3694880.,
      1355880., 1367200., 1378520., 1389840., 1403580., 1414920., 1426260.,
      1437600., 1790656., 1806672., 1822688., 1838704., 1857884., 1873928.,
      1889972., 1906016., 1199000., 1210560., 1222120., 1233680., 1247340.,
      1258920., 1270500., 1282080., 4335025., 4351650., 4368275., 4384900.,
      4408050., 4424700., 4441350., 4458000., 5936245., 5959730., 5983215.,
      6006700., 6039040., 6062560., 6086080., 6109600., 4141325., 4158250.,
      4175175., 4192100., 4215150., 4232100., 4249050., 4266000., 5316185.,
      5341770., 5367355., 5392940., 5425700., 5451320., 5476940., 5502560.,
      7214417., 7250530., 7286643., 7322756., 7368522., 7404684., 7440846.,
      7477008., 4984525., 5010530., 5036535., 5062540., 5095160., 5121200.,
      5147240., 5173280., 5935265., 5963930., 5992595., 6021260., 6057100.,
      6085800., 6114500., 6143200., 8046633., 8087058., 8127483., 8167908.,
      8217986., 8258460., 8298934., 8339408., 5554325., 5583410., 5612495.,
      5641580., 5677280., 5706400., 5735520., 5764640., 2076600., 2094080.,
      2111560., 2129040., 2148940., 2166440., 2183940., 2201440., 2730672.,
      2755312., 2779952., 2804592., 2832396., 2857064., 2881732., 2906400.,
      1821160., 1838880., 1856600., 1874320., 1894140., 1911880., 1929620.,
      1947360.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      934969.,  938546.,  942123.,  945700.,  958930.,  962556.,  966182.,
      969808.,  1010625., 1014594., 1018563., 1022532., 1036154., 1040172.,
      1044190., 1048208., 1767185., 1775074., 1782963., 1790852., 1808394.,
      1816332., 1824270., 1832208., 1842841., 1851122., 1859403., 1867684.,
      1885618., 1893948., 1902278., 1910608., 3847725., 3866394., 3885063.,
      3903732., 3932054., 3950772., 3969490., 3988208., 3923381., 3942442.,
      3961503., 3980564., 4009278., 4028388., 4047498., 4066608., 4679941.,
      4702922., 4725903., 4748884., 4781518., 4804548., 4827578., 4850608.,
      4755597., 4778970., 4802343., 4825716., 4858742., 4882164., 4905586.,
      4929008., 6760481., 6794242., 6828003., 6861764., 6905178., 6938988.,
      6972798., 7006608., 6836137., 6870290., 6904443., 6938596., 6982402.,
      7016604., 7050806., 7085008., 7592697., 7630770., 7668843., 7706916.,
      7754642., 7792764., 7830886., 7869008., 7668353., 7706818., 7745283.,
      7783748., 7831866., 7870380., 7908894., 7947408.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      375225.,  380900.,  386625.,  392400.,  565355.,  573580.,  581875.,
      590240.,  428425.,  434500.,  440625.,  446800.,  983115.,  994700.,
      1006355., 1018080., 1390081., 1406692., 1423401., 1440208., 997115.,
      1009260., 1021475., 1033760., 1605275., 1623020., 1640835., 1658720.,
      2226609., 2251844., 2277177., 2302608., 1569995., 1588300., 1606675.,
      1625120., 639140.,  650640.,  662180.,  673760.,  856492.,  872816.,
      889196.,  905632.,  581220.,  593040.,  604900.,  616800.,  2361825.,
      2382900., 2404025., 2425200., 3260355., 3290140., 3319995., 3349920.,
      2291825., 2313300., 2334825., 2356400., 3160675., 3193820., 3227035.,
      3260320., 4317929., 4364724., 4411617., 4458608., 3002195., 3035900.,
      3069675., 3103520., 3782835., 3822140., 3861515., 3900960., 5154457.,
      5209876., 5265393., 5321008., 3575075., 3614940., 3654875., 3694880.,
      1366020., 1389840., 1413700., 1437600., 1805132., 1838704., 1872332.,
      1906016., 1209540., 1233680., 1257860., 1282080., 4348425., 4384900.,
      4421425., 4458000., 5955355., 6006700., 6058115., 6109600., 4155225.,
      4192100., 4229025., 4266000., 5338235., 5392940., 5447715., 5502560.,
      7245777., 7322756., 7399833., 7477008., 5007275., 5062540., 5117875.,
      5173280., 5960395., 6021260., 6082195., 6143200., 8082305., 8167908.,
      8253609., 8339408., 5580155., 5641580., 5703075., 5764640., 2092900.,
      2129040., 2165220., 2201440., 2753772., 2804592., 2855468., 2906400.,
      1837860., 1874320., 1910820., 1947360.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      933793.,  945700.,  957705.,  969808.,  1009841., 1022532., 1035321.,
      1048208., 1770321., 1790852., 1811481., 1832208., 1846369., 1867684.,
      1889097., 1910608., 3861641., 3903732., 3945921., 3988208., 3937689.,
      3980564., 4023537., 4066608., 4698169., 4748884., 4799697., 4850608.,
      4774217., 4825716., 4877313., 4929008., 6789489., 6861764., 6934137.,
      7006608., 6865537., 6938596., 7011753., 7085008., 7626017., 7706916.,
      7787913., 7869008., 7702065., 7783748., 7865529., 7947408.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      748025.,   750450.,   759350.,   761800.,   770775.,   773250.,
      782300.,   784800.,   1126895.,  1130710.,  1143310.,  1147160.,
      1159865.,  1163750.,  1176560.,  1180480.,  853825.,   856850.,
      865950.,   869000.,   878175.,   881250.,   890500.,   893600.,
      1958215.,  1966230.,  1981350.,  1989400.,  2004625.,  2012710.,
      2028040.,  2036160.,  2768353.,  2780162.,  2801526.,  2813384.,
      2834895.,  2846802.,  2868460.,  2880416.,  1985375.,  1994230.,
      2009630.,  2018520.,  2034025.,  2042950.,  2058560.,  2067520.,
      3196375.,  3210550.,  3231830.,  3246040.,  3267425.,  3281670.,
      3303160.,  3317440.,  4432785.,  4453218.,  4483206.,  4503688.,
      4533823.,  4554354.,  4584636.,  4605216.,  3124975.,  3139990.,
      3161550.,  3176600.,  3198265.,  3213350.,  3235120.,  3250240.,
      1267980.,  1278280.,  1290960.,  1301280.,  1314020.,  1324360.,
      1337160.,  1347520.,  1698228.,  1712984.,  1730848.,  1745632.,
      1763580.,  1778392.,  1796424.,  1811264.,  1151660.,  1162440.,
      1175280.,  1186080.,  1198980.,  1209800.,  1222760.,  1233600.,
      4705825.,  4723650.,  4747950.,  4765800.,  4790175.,  4808050.,
      4832500.,  4850400.,  6495335.,  6520710.,  6554870.,  6580280.,
      6614545.,  6639990.,  6674360.,  6699840.,  4565225.,  4583650.,
      4608150.,  4626600.,  4651175.,  4669650.,  4694300.,  4712800.,
      6291775.,  6321350.,  6358030.,  6387640.,  6424425.,  6454070.,
      6490960.,  6520640.,  8593865.,  8635858.,  8687406.,  8729448.,
      8781143.,  8823234.,  8875076.,  8917216.,  5973975.,  6004390.,
      6041350.,  6071800.,  6108865.,  6139350.,  6176520.,  6207040.,
      7529935.,  7565670.,  7608510.,  7644280.,  7687225.,  7723030.,
      7766080.,  7801920.,  10258297., 10308914., 10369086., 10419752.,
      10480071., 10530786., 10591252., 10642016., 7113575.,  7150150.,
      7193270.,  7229880.,  7273105.,  7309750.,  7353080.,  7389760.,
      2709420.,  2732040.,  2757040.,  2779680.,  2804740.,  2827400.,
      2852520.,  2875200.,  3578260.,  3610264.,  3645376.,  3677408.,
      3712604.,  3744664.,  3779944.,  3812032.,  2395980.,  2419080.,
      2444240.,  2467360.,  2492580.,  2515720.,  2541000.,  2564160.,
      8663625.,  8696850.,  8736550.,  8769800.,  8809575.,  8842850.,
      8882700.,  8916000.,  11863775., 11910710., 11966430., 12013400.,
      12069225., 12116230., 12172160., 12219200., 8276625.,  8310450.,
      8350350.,  8384200.,  8424175.,  8458050.,  8498100.,  8532000.,
      10625335., 10676470., 10734710., 10785880., 10844225., 10895430.,
      10953880., 11005120., 14419377., 14491554., 14573286., 14645512.,
      14727391., 14799666., 14881692., 14954016., 9962575.,  10014550.,
      10073070., 10125080., 10183705., 10235750., 10294480., 10346560.,
      11863495., 11920790., 11985190., 12042520., 12107025., 12164390.,
      12229000., 12286400., 16083809., 16164610., 16254966., 16335816.,
      16426319., 16507218., 16597868., 16678816., 11102175., 11160310.,
      11224990., 11283160., 11347945., 11406150., 11471040., 11529280.,
      4150860.,  4185800.,  4223120.,  4258080.,  4295460.,  4330440.,
      4367880.,  4402880.,  5458292.,  5507544.,  5559904.,  5609184.,
      5661628.,  5710936.,  5763464.,  5812800.,  3640300.,  3675720.,
      3713200.,  3748640.,  3786180.,  3821640.,  3859240.,  3894720.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1860481.,  1867586.,  1884246.,  1891400.,  1908207.,  1915410.,
      1932364.,  1939616.,  2011793.,  2019682.,  2037126.,  2045064.,
      2062655.,  2070642.,  2088380.,  2096416.,  3524913.,  3540642.,
      3565926.,  3581704.,  3607135.,  3622962.,  3648540.,  3664416.,
      3676225.,  3692738.,  3718806.,  3735368.,  3761583.,  3778194.,
      3804556.,  3821216.,  7685993.,  7723282.,  7770126.,  7807464.,
      7854455.,  7891842.,  7938980.,  7976416.,  7837305.,  7875378.,
      7923006.,  7961128.,  8008903.,  8047074.,  8094996.,  8133216.,
      9350425.,  9396338.,  9451806.,  9497768.,  9553383.,  9599394.,
      9655156.,  9701216.,  9501737.,  9548434.,  9604686.,  9651432.,
      9707831.,  9754626.,  9811172.,  9858016.,  13511505., 13578978.,
      13656006., 13723528., 13800703., 13868274., 13945596., 14013216.,
      13662817., 13731074., 13808886., 13877192., 13955151., 14023506.,
      14101612., 14170016., 15175937., 15252034., 15337686., 15413832.,
      15499631., 15575826., 15661772., 15738016., 15327249., 15404130.,
      15490566., 15567496., 15654079., 15731058., 15817788., 15894816.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      503929.,  506354.,  508779.,  511204.,  519898.,  522348.,  524798.,
      527248.,  536067.,  538542.,  541017.,  543492.,  552436.,  554936.,
      557436.,  559936.,  815863.,  819678.,  823493.,  827308.,  839954.,
      843804.,  847654.,  851504.,  864325.,  868210.,  872095.,  875980.,
      888976.,  892896.,  896816.,  900736.,  681137.,  684162.,  687187.,
      690212.,  699730.,  702780.,  705830.,  708880.,  718523.,  721598.,
      724673.,  727748.,  737516.,  740616.,  743716.,  746816.,  1747263.,
      1755278., 1763293., 1771308., 1786842., 1794892., 1802942., 1810992.,
      1826701., 1834786., 1842871., 1850956., 1866840., 1874960., 1883080.,
      1891200., 2558881., 2570690., 2582499., 2594308., 2616474., 2628332.,
      2640190., 2652048., 2674459., 2686366., 2698273., 2710180., 2732836.,
      2744792., 2756748., 2768704., 1947175., 1956030., 1964885., 1973740.,
      1990018., 1998908., 2007798., 2016688., 2033141., 2042066., 2050991.,
      2059916., 2076544., 2085504., 2094464., 2103424., 2469967., 2481582.,
      2493197., 2504812., 2523946., 2535596., 2547246., 2558896., 2578205.,
      2589890., 2601575., 2613260., 2632744., 2644464., 2656184., 2667904.,
      3457873., 3473698., 3489523., 3505348., 3531530., 3547404., 3563278.,
      3579152., 3605579., 3621502., 3637425., 3653348., 3680020., 3695992.,
      3711964., 3727936., 2552631., 2563038., 2573445., 2583852., 2601682.,
      2612124., 2622566., 2633008., 2651013., 2661490., 2671967., 2682444.,
      2700624., 2711136., 2721648., 2732160., 759260.,  764440.,  769620.,
      774800.,  784720.,  789920.,  795120.,  800320.,  810340.,  815560.,
      820780.,  826000.,  836120.,  841360.,  846600.,  851840.,  817604.,
      824168.,  830732.,  837296.,  850048.,  856640.,  863232.,  869824.,
      882716.,  889336.,  895956.,  902576.,  915608.,  922256.,  928904.,
      935552.,  376636.,  380248.,  383860.,  387472.,  395184.,  398816.,
      402448.,  406080.,  413892.,  417544.,  421196.,  424848.,  432760.,
      436432.,  440104.,  443776.,  1145505., 1150530., 1155555., 1160580.,
      1171874., 1176924., 1181974., 1187024., 1198443., 1203518., 1208593.,
      1213668., 1225212., 1230312., 1235412., 1240512., 1719727., 1727182.,
      1734637., 1742092., 1758378., 1765868., 1773358., 1780848., 1797309.,
      1804834., 1812359., 1819884., 1836520., 1844080., 1851640., 1859200.,
      1346009., 1351634., 1357259., 1362884., 1375002., 1380652., 1386302.,
      1391952., 1404195., 1409870., 1415545., 1421220., 1433588., 1439288.,
      1444988., 1450688., 2514679., 2526334., 2537989., 2549644., 2568818.,
      2580508., 2592198., 2603888., 2623237., 2634962., 2646687., 2658412.,
      2677936., 2689696., 2701456., 2713216., 3615625., 3632530., 3649435.,
      3666340., 3693602., 3710556., 3727510., 3744464., 3771971., 3788974.,
      3805977., 3822980., 3850732., 3867784., 3884836., 3901888., 2704607.,
      2717102., 2729597., 2742092., 2762010., 2774540., 2787070., 2799600.,
      2819693., 2832258., 2844823., 2857388., 2877656., 2890256., 2902856.,
      2915456., 1986055., 1995166., 2004277., 2013388., 2030018., 2039164.,
      2048310., 2057456., 2074261., 2083442., 2092623., 2101804., 2118784.,
      2128000., 2137216., 2146432., 2105145., 2116850., 2128555., 2140260.,
      2162322., 2174076., 2185830., 2197584., 2219891., 2231694., 2243497.,
      2255300., 2277852., 2289704., 2301556., 2313408., 1371119., 1379534.,
      1387949., 1396364., 1412202., 1420652., 1429102., 1437552., 1453565.,
      1462050., 1470535., 1479020., 1495208., 1503728., 1512248., 1520768.,
      624380.,  626520.,  628660.,  630800.,  637680.,  639840.,  642000.,
      644160.,  651140.,  653320.,  655500.,  657680.,  664760.,  666960.,
      669160.,  671360.,  902692.,  906024.,  909356.,  912688.,  922208.,
      925568.,  928928.,  932288.,  941948.,  945336.,  948724.,  952112.,
      961912.,  965328.,  968744.,  972160.,  652380.,  655000.,  657620.,
      660240.,  666960.,  669600.,  672240.,  674880.,  681700.,  684360.,
      687020.,  689680.,  696600.,  699280.,  701960.,  704640.,  1787081.,
      1794706., 1802331., 1809956., 1823850., 1831500., 1839150., 1846800.,
      1860819., 1868494., 1876169., 1883844., 1897988., 1905688., 1913388.,
      1921088., 2623591., 2634686., 2645781., 2656876., 2676802., 2687932.,
      2699062., 2710192., 2730293., 2741458., 2752623., 2763788., 2784064.,
      2795264., 2806464., 2817664., 2010881., 2019106., 2027331., 2035556.,
      2050274., 2058524., 2066774., 2075024., 2089867., 2098142., 2106417.,
      2114692., 2129660., 2137960., 2146260., 2154560., 2416815., 2426990.,
      2437165., 2447340., 2465034., 2475244., 2485454., 2495664., 2513533.,
      2523778., 2534023., 2544268., 2562312., 2572592., 2582872., 2593152.,
      3575665., 3590498., 3605331., 3620164., 3645354., 3660236., 3675118.,
      3690000., 3715435., 3730366., 3745297., 3760228., 3785908., 3800888.,
      3815868., 3830848., 2760087., 2770590., 2781093., 2791596., 2809522.,
      2820060., 2830598., 2841136., 2859237., 2869810., 2880383., 2890956.,
      2909232., 2919840., 2930448., 2941056., 969151.,  975246.,  981341.,
      987436.,  1001050., 1007180., 1013310., 1019440., 1033229., 1039394.,
      1045559., 1051724., 1065688., 1071888., 1078088., 1084288., 1433889.,
      1443010., 1452131., 1461252., 1480730., 1489900., 1499070., 1508240.,
      1527963., 1537182., 1546401., 1555620., 1575588., 1584856., 1594124.,
      1603392., 1066151., 1072574., 1078997., 1085420., 1099266., 1105724.,
      1112182., 1118640., 1132661., 1139154., 1145647., 1152140., 1166336.,
      1172864., 1179392., 1185920., 1109020., 1113240., 1117460., 1121680.,
      1130640., 1134880., 1139120., 1143360., 1152420., 1156680., 1160940.,
      1165200., 1174360., 1178640., 1182920., 1187200., 1534596., 1540840.,
      1547084., 1553328., 1565760., 1572032., 1578304., 1584576., 1597148.,
      1603448., 1609748., 1616048., 1628760., 1635088., 1641416., 1647744.,
      1070460., 1075160., 1079860., 1084560., 1093360., 1098080., 1102800.,
      1107520., 1116420., 1121160., 1125900., 1130640., 1139640., 1144400.,
      1149160., 1153920.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3713857.,  3720962.,  3728067.,  3735172.,  3761338.,  3768492.,
      3775646.,  3782800.,  3809211.,  3816414.,  3823617.,  3830820.,
      3857476.,  3864728.,  3871980.,  3879232.,  4015697.,  4023586.,
      4031475.,  4039364.,  4066314.,  4074252.,  4082190.,  4090128.,
      4117323.,  4125310.,  4133297.,  4141284.,  4168724.,  4176760.,
      4184796.,  4192832.,  7034097.,  7049826.,  7065555.,  7081284.,
      7116074.,  7131852.,  7147630.,  7163408.,  7198443.,  7214270.,
      7230097.,  7245924.,  7281204.,  7297080.,  7312956.,  7328832.,
      7335937.,  7352450.,  7368963.,  7385476.,  7421050.,  7437612.,
      7454174.,  7470736.,  7506555.,  7523166.,  7539777.,  7556388.,
      7592452.,  7609112.,  7625772.,  7642432.,  15334697., 15371986.,
      15409275., 15446564., 15502914., 15540252., 15577590., 15614928.,
      15671523., 15708910., 15746297., 15783684., 15840524., 15877960.,
      15915396., 15952832., 15636537., 15674610., 15712683., 15750756.,
      15807890., 15846012., 15884134., 15922256., 15979635., 16017806.,
      16055977., 16094148., 16151772., 16189992., 16228212., 16266432.,
      10894041., 10928690., 10963339., 10997988., 11051698., 11086396.,
      11121094., 11155792., 11209747., 11244494., 11279241., 11313988.,
      11368188., 11402984., 11437780., 11472576., 9423337.,  9455698.,
      9488059.,  9520420.,  9571842.,  9604252.,  9636662.,  9669072.,
      9720739.,  9753198.,  9785657.,  9818116.,  9870028.,  9902536.,
      9935044.,  9967552.,  7637777.,  7655074.,  7672371.,  7689668.,
      7726026.,  7743372.,  7760718.,  7778064.,  7814667.,  7832062.,
      7849457.,  7866852.,  7903700.,  7921144.,  7938588.,  7956032.,
      7939617.,  7957698.,  7975779.,  7993860.,  8031002.,  8049132.,
      8067262.,  8085392.,  8122779.,  8140958.,  8159137.,  8177316.,
      8214948.,  8233176.,  8251404.,  8269632.,  10958017., 10983938.,
      11009859., 11035780., 11080762., 11106732., 11132702., 11158672.,
      11203899., 11229918., 11255937., 11281956., 11327428., 11353496.,
      11379564., 11405632., 11259857., 11286562., 11313267., 11339972.,
      11385738., 11412492., 11439246., 11466000., 11512011., 11538814.,
      11565617., 11592420., 11638676., 11665528., 11692380., 11719232.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      31940.,  40740.,  30600.,  82243.,  98735.,  70630.,  133651., 157535.,
      110950., 53530.,  61922.,  42100.,  195740., 228900., 160800., 262171.,
      304535., 211750., 313579., 363335., 252070., 114010., 130130., 87460.,
      359540., 417060., 291000., 442099., 510335., 352870., 493507., 569135.,
      393190., 174490., 198338., 132820.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {65660.,  70560.,  124460., 129360.,
                                         271460., 276360., 330260., 335160.,
                                         477260., 482160., 536060., 540960.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      63055.,   63880.,   80395.,  81480.,  60350.,  61200.,  161819.,
      164486.,  194187.,  197470., 138810., 141260., 262619., 267302.,
      309435.,  315070.,  217770., 221900., 103664., 107060., 119784.,
      123844.,  81240.,   84200.,  385615., 391480., 450835., 457800.,
      316550.,  321600.,  514619., 524342., 597555., 609070., 415170.,
      423500.,  615419.,  627158., 712803., 726670., 494130., 504140.,
      220592.,  228020.,  251496., 260260., 168600., 174920., 708175.,
      719080.,  821275.,  834120., 572750., 582000., 867419., 884198.,
      1000923., 1020670., 691530., 705740., 968219., 987014., 1116171.,
      1138270., 770490.,  786380., 337520., 348980., 383208., 396676.,
      255960.,  265640.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      129360., 131320., 138964.,  141120.,  244608.,  248920.,
      254212., 258720., 532728.,  542920.,  542332.,  552720.,
      647976., 660520., 657580.,  670320.,  936096.,  954520.,
      945700., 964320., 1051344., 1072120., 1060948., 1081920.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      125285.,  126110.,  126935.,  127760.,  159705.,  160790.,  161875.,
      162960.,  119850.,  120700.,  121550.,  122400.,  320971.,  323638.,
      326305.,  328972.,  385091.,  388374.,  391657.,  394940.,  275170.,
      277620.,  280070.,  282520.,  520555.,  525238.,  529921.,  534604.,
      613235.,  618870.,  624505.,  630140.,  431410.,  435540.,  439670.,
      443800.,  203932.,  207328.,  210724.,  214120.,  235508.,  239568.,
      243628.,  247688.,  159520.,  162480.,  165440.,  168400.,  765365.,
      771230.,  777095.,  782960.,  894705.,  901670.,  908635.,  915600.,
      628050.,  633100.,  638150.,  643200.,  1019515., 1029238., 1038961.,
      1048684., 1183595., 1195110., 1206625., 1218140., 822010.,  830340.,
      838670.,  847000.,  1219099., 1230838., 1242577., 1254316., 1411739.,
      1425606., 1439473., 1453340., 978250.,  988260.,  998270.,  1008280.,
      433756.,  441184.,  448612.,  456040.,  494228.,  502992.,  511756.,
      520520.,  330880.,  337200.,  343520.,  349840.,  1405445., 1416350.,
      1427255., 1438160., 1629705., 1642550., 1655395., 1668240., 1136250.,
      1145500., 1154750., 1164000., 1718059., 1734838., 1751617., 1768396.,
      1982099., 2001846., 2021593., 2041340., 1368850., 1383060., 1397270.,
      1411480., 1917643., 1936438., 1955233., 1974028., 2210243., 2232342.,
      2254441., 2276540., 1525090., 1540980., 1556870., 1572760., 663580.,
      675040.,  686500.,  697960.,  752948.,  766416.,  779884.,  793352.,
      502240.,  511920.,  521600.,  531280.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      256760.,  258720.,  260680.,  262640.,  275772.,  277928.,  280084.,
      282240.,  484904.,  489216.,  493528.,  497840.,  503916.,  508424.,
      512932.,  517440.,  1055264., 1065456., 1075648., 1085840., 1074276.,
      1084664., 1095052., 1105440., 1283408., 1295952., 1308496., 1321040.,
      1302420., 1315160., 1327900., 1340640., 1853768., 1872192., 1890616.,
      1909040., 1872780., 1891400., 1910020., 1928640., 2081912., 2102688.,
      2123464., 2144240., 2100924., 2121896., 2142868., 2163840.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      124190.,  127760.,  158585.,  162960.,  119175.,  122400.,  321538.,
      328972.,  385973.,  394940.,  275975.,  282520.,  523138.,  534604.,
      616469.,  630140.,  433895.,  443800.,  206632.,  214120.,  238784.,
      247688.,  161960.,  168400.,  769310.,  782960.,  899465.,  915600.,
      631575.,  643200.,  1027138., 1048684., 1192709., 1218140., 828695.,
      847000.,  1228738., 1254316., 1423205., 1453340., 986615.,  1008280.,
      440488.,  456040.,  502208.,  520520.,  336680.,  349840.,  1414430.,
      1438160., 1640345., 1668240., 1143975., 1164000., 1732738., 1768396.,
      1999445., 2041340., 1381415., 1411480., 1934338., 1974028., 2229941.,
      2276540., 1539335., 1572760., 674344.,  697960.,  765632.,  793352.,
      511400.,  531280.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      256319.,  262640.,  275527.,  282240.,  486815.,  497840.,
      506023.,  517440.,  1063055., 1085840., 1082263., 1105440.,
      1293551., 1321040., 1312759., 1340640., 1869791., 1909040.,
      1888999., 1928640., 2100287., 2144240., 2119495., 2163840.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      246760.,  248380.,  253870.,  255520.,  315035.,  317170.,  323750.,
      325920.,  236675.,  238350.,  243100.,  244800.,  637784.,  643076.,
      652610.,  657944.,  765429.,  771946.,  783314.,  789880.,  547085.,
      551950.,  560140.,  565040.,  1036952., 1046276., 1059842., 1069208.,
      1221717., 1232938., 1249010., 1260280., 859565.,  867790.,  879340.,
      887600.,  406496.,  413264.,  421448.,  428240.,  469476.,  477568.,
      487256.,  495376.,  318020.,  323920.,  330880.,  336800.,  1526920.,
      1538620., 1554190., 1565920., 1785035., 1798930., 1817270., 1831200.,
      1253075., 1263150., 1276300., 1286400., 2034872., 2054276., 2077922.,
      2097368., 2362437., 2385418., 2413250., 2436280., 1640765., 1657390.,
      1677340., 1694000., 2434040., 2457476., 2485154., 2508632., 2818725.,
      2846410., 2878946., 2906680., 1953245., 1973230., 1996540., 2016560.,
      866144.,  880976.,  897224.,  912080.,  986916.,  1004416., 1023512.,
      1041040., 660740.,  673360.,  687040.,  699680.,  2807080., 2828860.,
      2854510., 2876320., 3255035., 3280690., 3310790., 3336480., 2269475.,
      2287950., 2309500., 2328000., 3431960., 3465476., 3503234., 3536792.,
      3959445., 3998890., 4043186., 4082680., 2734445., 2762830., 2794540.,
      2822960., 3831128., 3868676., 3910466., 3948056., 4415733., 4459882.,
      4508882., 4553080., 3046925., 3078670., 3113740., 3145520., 1325792.,
      1348688., 1373000., 1395920., 1504356., 1531264., 1559768., 1586704.,
      1003460., 1022800., 1043200., 1062560.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      508767.,  512638.,  521360.,  525280.,  546791.,  551054.,  560168.,
      564480.,  965055.,  973630.,  987056.,  995680.,  1003079., 1012046.,
      1025864., 1034880., 2105775., 2126110., 2151296., 2171680., 2143799.,
      2164526., 2190104., 2210880., 2562063., 2587102., 2616992., 2642080.,
      2600087., 2625518., 2655800., 2681280., 3702783., 3739582., 3781232.,
      3818080., 3740807., 3777998., 3820040., 3857280., 4159071., 4200574.,
      4246928., 4288480., 4197095., 4238990., 4285736., 4327680.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      491900.,  493520.,  495140.,  496760.,  506090.,  507740.,  509390.,
      511040.,  627935.,  630070.,  632205.,  634340.,  645330.,  647500.,
      649670.,  651840.,  471675.,  473350.,  475025.,  476700.,  484500.,
      486200.,  487900.,  489600.,  1270276., 1275568., 1280860., 1286152.,
      1299886., 1305220., 1310554., 1315888., 1524341., 1530858., 1537375.,
      1543892., 1560062., 1566628., 1573194., 1579760., 1089305., 1094170.,
      1099035., 1103900., 1115380., 1120280., 1125180., 1130080., 2064580.,
      2073904., 2083228., 2092552., 2110318., 2119684., 2129050., 2138416.,
      2432213., 2443434., 2454655., 2465876., 2486750., 2498020., 2509290.,
      2520560., 1710905., 1719130., 1727355., 1735580., 1750420., 1758680.,
      1766940., 1775200., 806224.,  812992.,  819760.,  826528.,  836104.,
      842896.,  849688.,  856480.,  930860.,  938952.,  947044.,  955136.,
      966392.,  974512.,  982632.,  990752.,  630140.,  636040.,  641940.,
      647840.,  655840.,  661760.,  667680.,  673600.,  3042140., 3053840.,
      3065540., 3077240., 3096650., 3108380., 3120110., 3131840., 3556175.,
      3570070., 3583965., 3597860., 3620610., 3634540., 3648470., 3662400.,
      2496075., 2506150., 2516225., 2526300., 2542500., 2552600., 2562700.,
      2572800., 4050340., 4069744., 4089148., 4108552., 4136398., 4155844.,
      4175290., 4194736., 4701893., 4724874., 4747855., 4770836., 4803470.,
      4826500., 4849530., 4872560., 3264905., 3281530., 3298155., 3314780.,
      3338020., 3354680., 3371340., 3388000., 4844644., 4868080., 4891516.,
      4914952., 4946830., 4970308., 4993786., 5017264., 5609765., 5637450.,
      5665135., 5692820., 5730158., 5757892., 5785626., 5813360., 3886505.,
      3906490., 3926475., 3946460., 3973060., 3993080., 4013100., 4033120.,
      1717456., 1732288., 1747120., 1761952., 1779592., 1794448., 1809304.,
      1824160., 1956332., 1973832., 1991332., 2008832., 2029496., 2047024.,
      2064552., 2082080., 1308860., 1321480., 1334100., 1346720., 1361440.,
      1374080., 1386720., 1399360., 5592380., 5614160., 5635940., 5657720.,
      5687210., 5709020., 5730830., 5752640., 6484415., 6510070., 6535725.,
      6561380., 6595890., 6621580., 6647270., 6672960., 4520475., 4538950.,
      4557425., 4575900., 4600500., 4619000., 4637500., 4656000., 6830404.,
      6863920., 6897436., 6930952., 6972910., 7006468., 7040026., 7073584.,
      7879445., 7918890., 7958335., 7997780., 8046878., 8086372., 8125866.,
      8165360., 5440505., 5468890., 5497275., 5525660., 5560660., 5589080.,
      5617500., 5645920., 7624708., 7662256., 7699804., 7737352., 7783342.,
      7820932., 7858522., 7896112., 8787317., 8831466., 8875615., 8919764.,
      8973566., 9017764., 9061962., 9106160., 6062105., 6093850., 6125595.,
      6157340., 6195700., 6227480., 6259260., 6291040., 2628688., 2651584.,
      2674480., 2697376., 2723080., 2746000., 2768920., 2791840., 2981804.,
      3008712., 3035620., 3062528., 3092600., 3119536., 3146472., 3173408.,
      1987580., 2006920., 2026260., 2045600., 2067040., 2086400., 2105760.,
      2125120.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1013663., 1017534., 1021405., 1025276., 1038800., 1042720., 1046640.,
      1050560., 1089319., 1093582., 1097845., 1102108., 1116024., 1120336.,
      1124648., 1128960., 1921535., 1930110., 1938685., 1947260., 1965488.,
      1974112., 1982736., 1991360., 1997191., 2006158., 2015125., 2024092.,
      2042712., 2051728., 2060744., 2069760., 4191215., 4211550., 4231885.,
      4252220., 4282208., 4302592., 4322976., 4343360., 4266871., 4287598.,
      4308325., 4329052., 4359432., 4380208., 4400984., 4421760., 5099087.,
      5124126., 5149165., 5174204., 5208896., 5233984., 5259072., 5284160.,
      5174743., 5200174., 5225605., 5251036., 5286120., 5311600., 5337080.,
      5362560., 7368767., 7405566., 7442365., 7479164., 7525616., 7562464.,
      7599312., 7636160., 7444423., 7481614., 7518805., 7555996., 7602840.,
      7640080., 7677320., 7714560., 8276639., 8318142., 8359645., 8401148.,
      8452304., 8493856., 8535408., 8576960., 8352295., 8394190., 8436085.,
      8477980., 8529528., 8571472., 8613416., 8655360.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      489710.,  496760.,  503870.,  511040.,  625695.,  634340.,  643055.,
      651840.,  470325.,  476700.,  483125.,  489600.,  1271410., 1286152.,
      1300978., 1315888., 1526105., 1543892., 1561777., 1579760., 1090915.,
      1103900., 1116955., 1130080., 2069746., 2092552., 2115442., 2138416.,
      2438681., 2465876., 2493169., 2520560., 1715875., 1735580., 1755355.,
      1775200., 811624.,  826528.,  841480.,  856480.,  937412.,  955136.,
      972916.,  990752.,  635020.,  647840.,  660700.,  673600.,  3050030.,
      3077240., 3104510., 3131840., 3565695., 3597860., 3630095., 3662400.,
      2503125., 2526300., 2549525., 2572800., 4065586., 4108552., 4151602.,
      4194736., 4720121., 4770836., 4821649., 4872560., 3278275., 3314780.,
      3351355., 3388000., 4863922., 4914952., 4966066., 5017264., 5632697.,
      5692820., 5753041., 5813360., 3903235., 3946460., 3989755., 4033120.,
      1730920., 1761952., 1793032., 1824160., 1972292., 2008832., 2045428.,
      2082080., 1320460., 1346720., 1373020., 1399360., 5610350., 5657720.,
      5705150., 5752640., 6505695., 6561380., 6617135., 6672960., 4535925.,
      4575900., 4615925., 4656000., 6859762., 6930952., 7002226., 7073584.,
      7914137., 7997780., 8081521., 8165360., 5465635., 5525660., 5585755.,
      5645920., 7658098., 7737352., 7816690., 7896112., 8826713., 8919764.,
      9012913., 9106160., 6090595., 6157340., 6224155., 6291040., 2650216.,
      2697376., 2744584., 2791840., 3007172., 3062528., 3117940., 3173408.,
      2005900., 2045600., 2085340., 2125120.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1012781., 1025276., 1037869., 1050560., 1088829., 1102108., 1115485.,
      1128960., 1925357., 1947260., 1969261., 1991360., 2001405., 2024092.,
      2046877., 2069760., 4206797., 4252220., 4297741., 4343360., 4282845.,
      4329052., 4375357., 4421760., 5119373., 5174204., 5229133., 5284160.,
      5195421., 5251036., 5306749., 5362560., 7400813., 7479164., 7557613.,
      7636160., 7476861., 7555996., 7635229., 7714560., 8313389., 8401148.,
      8489005., 8576960., 8389437., 8477980., 8566621., 8655360.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      976210.,  979420.,  990280.,  993520.,  1004470., 1007740., 1018780.,
      1022080., 1247155., 1251390., 1264410., 1268680., 1281805., 1286110.,
      1299340., 1303680., 937325.,  940650.,  950050.,  953400.,  962875.,
      966250.,  975800.,  979200.,  2532278., 2542820., 2561720., 2572304.,
      2591330., 2601956., 2621108., 2631776., 3039225., 3052210., 3074750.,
      3087784., 3110471., 3123554., 3146388., 3159520., 2172135., 2181830.,
      2198070., 2207800., 2224145., 2233910., 2250360., 2260160., 4120886.,
      4139492., 4166456., 4185104., 4212194., 4230884., 4258100., 4276832.,
      4854969., 4877362., 4909310., 4931752., 4963847., 4986338., 5018580.,
      5041120., 3415335., 3431750., 3454710., 3471160., 3494225., 3510710.,
      3533880., 3550400., 1609736., 1623248., 1639520., 1653056., 1669400.,
      1682960., 1699376., 1712960., 1858668., 1874824., 1894088., 1910272.,
      1929620., 1945832., 1965264., 1981504., 1258260., 1270040., 1283880.,
      1295680., 1309580., 1321400., 1335360., 1347200., 6076690., 6100060.,
      6131080., 6154480., 6185590., 6209020., 6240220., 6263680., 7103635.,
      7131390., 7167930., 7195720., 7232365., 7260190., 7296940., 7324800.,
      4986125., 5006250., 5032450., 5052600., 5078875., 5099050., 5125400.,
      5145600., 5184246., 5214820., 5253752., 5284368., 5323426., 5354084.,
      5393268., 5423968., 4908185., 4940786., 4982942., 5015592., 5057895.,
      5090594., 5133044., 5165792., 3195335., 3218310., 3247830., 3270840.,
      3300465., 3323510., 3353240., 3376320., 1702006., 1716068., 1738488.,
      1752592., 1775138., 1789284., 1811956., 1826144., 1763673., 1777010.,
      1799902., 1813288., 1836327., 1849762., 1872948., 1886432., 1223175.,
      1232390., 1248150., 1257400., 1273265., 1282550., 1298520., 1307840.,
      655112.,  660176.,  668000.,  673088.,  680984.,  686096.,  694064.,
      699200.,  784364.,  790664.,  800072.,  806400.,  815892.,  822248.,
      831824.,  838208.,  547220.,  551960.,  558760.,  563520.,  570380.,
      575160.,  582080.,  586880.,  3405010., 3417820., 3438280., 3451120.,
      3471670., 3484540., 3505180., 3518080., 4035955., 4051390., 4075610.,
      4091080., 4115405., 4130910., 4155340., 4170880., 2865325., 2876650.,
      2894050., 2905400., 2922875., 2934250., 2951800., 2963200., 5179958.,
      5203940., 5236280., 5260304., 5292770., 5316836., 5349428., 5373536.,
      6065465., 6094130., 6132350., 6161064., 6199431., 6228194., 6266708.,
      6295520., 4244135., 4265030., 4292470., 4313400., 4340945., 4361910.,
      4389560., 4410560., 6768566., 6800612., 6841016., 6873104., 6913634.,
      6945764., 6986420., 7018592., 7881209., 7919282., 7966910., 8005032.,
      8052807., 8090978., 8138900., 8177120., 5487335., 5514950., 5549110.,
      5576760., 5611025., 5638710., 5673080., 5700800., 2477576., 2498768.,
      2522720., 2543936., 2567960., 2589200., 2613296., 2634560., 2835308.,
      2860424., 2888648., 2913792., 2942100., 2967272., 2995664., 3020864.,
      1904660., 1922840., 1943080., 1961280., 1981580., 1999800., 2020160.,
      2038400.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2017869., 2025562., 2042810., 2050552., 2067947., 2075738., 2093280.,
      2101120., 2169181., 2177658., 2195690., 2204216., 2222395., 2230970.,
      2249296., 2257920., 3833613., 3850714., 3877370., 3894520., 3921323.,
      3938522., 3965472., 3982720., 3984925., 4002810., 4030250., 4048184.,
      4075771., 4093754., 4121488., 4139520., 8372973., 8413594., 8463770.,
      8504440., 8554763., 8595482., 8645952., 8686720., 8524285., 8565690.,
      8616650., 8658104., 8709211., 8750714., 8801968., 8843520., 2987949.,
      3013402., 3048410., 3073912., 3109067., 3134618., 3169920., 3195520.,
      2397885., 2420026., 2451722., 2473912., 2505755., 2527994., 2559984.,
      2582272., 5044109., 5067482., 5100410., 5123832., 5156907., 5180378.,
      5213600., 5237120., 5195421., 5219578., 5253290., 5277496., 5311355.,
      5335610., 5369616., 5393920., 6859853., 6892634., 6934970., 6967800.,
      7010283., 7043162., 7085792., 7118720., 7011165., 7044730., 7087850.,
      7121464., 7164731., 7198394., 7241808., 7275520.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1949210.,  1952420.,  1955630.,  1958840.,  1977320.,  1980560.,
      1983800.,  1987040.,  2005670.,  2008940.,  2012210.,  2015480.,
      2034260.,  2037560.,  2040860.,  2044160.,  2490075.,  2494310.,
      2498545.,  2502780.,  2524550.,  2528820.,  2533090.,  2537360.,
      2559305.,  2563610.,  2567915.,  2572220.,  2594340.,  2598680.,
      2603020.,  2607360.,  1871325.,  1874650.,  1877975.,  1881300.,
      1896750.,  1900100.,  1903450.,  1906800.,  1922375.,  1925750.,
      1929125.,  1932500.,  1948200.,  1951600.,  1955000.,  1958400.,
      5054014.,  5064556.,  5075098.,  5085640.,  5112856.,  5123440.,
      5134024.,  5144608.,  5172034.,  5182660.,  5193286.,  5203912.,
      5231548.,  5242216.,  5252884.,  5263552.,  6065465.,  6078450.,
      6091435.,  6104420.,  6136466.,  6149500.,  6162534.,  6175568.,
      6207859.,  6220942.,  6234025.,  6247108.,  6279644.,  6292776.,
      6305908.,  6319040.,  4334575.,  4344270.,  4353965.,  4363660.,
      4386410.,  4396140.,  4405870.,  4415600.,  4438525.,  4448290.,
      4458055.,  4467820.,  4490920.,  4500720.,  4510520.,  4520320.,
      8223166.,  8241772.,  8260378.,  8278984.,  8314264.,  8332912.,
      8351560.,  8370208.,  8405698.,  8424388.,  8443078.,  8461768.,
      8497468.,  8516200.,  8534932.,  8553664.,  9687545.,  9709938.,
      9732331.,  9754724.,  9796178.,  9818620.,  9841062.,  9863504.,
      9905203.,  9927694.,  9950185.,  9972676.,  10014620., 10037160.,
      10059700., 10082240., 6814255.,  6830670.,  6847085.,  6863500.,
      6892970.,  6909420.,  6925870.,  6942320.,  6971965.,  6988450.,
      7004935.,  7021420.,  7051240.,  7067760.,  7084280.,  7100800.,
      3205960.,  3219472.,  3232984.,  3246496.,  3265504.,  3279040.,
      3292576.,  3306112.,  3325240.,  3338800.,  3352360.,  3365920.,
      3385168.,  3398752.,  3412336.,  3425920.,  3701180.,  3717336.,
      3733492.,  3749648.,  3771992.,  3788176.,  3804360.,  3820544.,
      3843028.,  3859240.,  3875452.,  3891664.,  3914288.,  3930528.,
      3946768.,  3963008.,  2504740.,  2516520.,  2528300.,  2540080.,
      2555960.,  2567760.,  2579560.,  2591360.,  2607340.,  2619160.,
      2630980.,  2642800.,  2658880.,  2670720.,  2682560.,  2694400.,
      12130010., 12153380., 12176750., 12200120., 12238760., 12262160.,
      12285560., 12308960., 12347750., 12371180., 12394610., 12418040.,
      12456980., 12480440., 12503900., 12527360., 14179515., 14207270.,
      14235025., 14262780., 14308070., 14335860., 14363650., 14391440.,
      14436905., 14464730., 14492555., 14520380., 14566020., 14593880.,
      14621740., 14649600., 9952125.,  9972250.,  9992375.,  10012500.,
      10044750., 10064900., 10085050., 10105200., 10137575., 10157750.,
      10177925., 10198100., 10230600., 10250800., 10271000., 10291200.,
      10337918., 10368492., 10399066., 10429640., 10476888., 10507504.,
      10538120., 10568736., 10616194., 10646852., 10677510., 10708168.,
      10755836., 10786536., 10817236., 10847936., 9783769.,  9816370.,
      9848971.,  9881572.,  9933234.,  9965884.,  9998534.,  10031184.,
      10083091., 10115790., 10148489., 10181188., 10233340., 10266088.,
      10298836., 10331584., 6367695.,  6390670.,  6413645.,  6436620.,
      6472650.,  6495660.,  6518670.,  6541680.,  6577885.,  6600930.,
      6623975.,  6647020.,  6683400.,  6706480.,  6729560.,  6752640.,
      3389950.,  3404012.,  3418074.,  3432136.,  3462872.,  3476976.,
      3491080.,  3505184.,  3536130.,  3550276.,  3564422.,  3578568.,
      3609724.,  3623912.,  3638100.,  3652288.,  3514009.,  3527346.,
      3540683.,  3554020.,  3586418.,  3599804.,  3613190.,  3626576.,
      3659219.,  3672654.,  3686089.,  3699524.,  3732412.,  3745896.,
      3759380.,  3772864.,  2437135.,  2446350.,  2455565.,  2464780.,
      2487050.,  2496300.,  2505550.,  2514800.,  2537245.,  2546530.,
      2555815.,  2565100.,  2587720.,  2597040.,  2606360.,  2615680.,
      1305160.,  1310224.,  1315288.,  1320352.,  1330912.,  1336000.,
      1341088.,  1346176.,  1356856.,  1361968.,  1367080.,  1372192.,
      1382992.,  1388128.,  1393264.,  1398400.,  1562428.,  1568728.,
      1575028.,  1581328.,  1593816.,  1600144.,  1606472.,  1612800.,
      1625428.,  1631784.,  1638140.,  1644496.,  1657264.,  1663648.,
      1670032.,  1676416.,  1089700.,  1094440.,  1099180.,  1103920.,
      1112760.,  1117520.,  1122280.,  1127040.,  1135980.,  1140760.,
      1145540.,  1150320.,  1159360.,  1164160.,  1168960.,  1173760.,
      6797210.,  6810020.,  6822830.,  6835640.,  6863720.,  6876560.,
      6889400.,  6902240.,  6930470.,  6943340.,  6956210.,  6969080.,
      6997460.,  7010360.,  7023260.,  7036160.,  8056475.,  8071910.,
      8087345.,  8102780.,  8135750.,  8151220.,  8166690.,  8182160.,
      8215305.,  8230810.,  8246315.,  8261820.,  8295140.,  8310680.,
      8326220.,  8341760.,  5719325.,  5730650.,  5741975.,  5753300.,
      5776750.,  5788100.,  5799450.,  5810800.,  5834375.,  5845750.,
      5857125.,  5868500.,  5892200.,  5903600.,  5915000.,  5926400.,
      10335934., 10359916., 10383898., 10407880., 10448536., 10472560.,
      10496584., 10520608., 10561474., 10585540., 10609606., 10633672.,
      10674748., 10698856., 10722964., 10747072., 12102265., 12130930.,
      12159595., 12188260., 12235986., 12264700., 12293414., 12322128.,
      12370099., 12398862., 12427625., 12456388., 12504604., 12533416.,
      12562228., 12591040., 8467375.,  8488270.,  8509165.,  8530060.,
      8564010.,  8584940.,  8605870.,  8626800.,  8660925.,  8681890.,
      8702855.,  8723820.,  8758120.,  8779120.,  8800120.,  8821120.,
      13505086., 13537132., 13569178., 13601224., 13649944., 13682032.,
      13714120., 13746208., 13795138., 13827268., 13859398., 13891528.,
      13940668., 13972840., 14005012., 14037184., 15724345., 15762418.,
      15800491., 15838564., 15895698., 15933820., 15971942., 16010064.,
      16067443., 16105614., 16143785., 16181956., 16239580., 16277800.,
      16316020., 16354240., 10947055., 10974670., 11002285., 11029900.,
      11070570., 11098220., 11125870., 11153520., 11194365., 11222050.,
      11249735., 11277420., 11318440., 11346160., 11373880., 11401600.,
      4933960.,  4955152.,  4976344.,  4997536.,  5024224.,  5045440.,
      5066656.,  5087872.,  5114680.,  5135920.,  5157160.,  5178400.,
      5205328.,  5226592.,  5247856.,  5269120.,  5645500.,  5670616.,
      5695732.,  5720848.,  5752152.,  5777296.,  5802440.,  5827584.,
      5859028.,  5884200.,  5909372.,  5934544.,  5966128.,  5991328.,
      6016528.,  6041728.,  3791140.,  3809320.,  3827500.,  3845680.,
      3867960.,  3886160.,  3904360.,  3922560.,  3944940.,  3963160.,
      3981380.,  3999600.,  4022080.,  4040320.,  4058560.,  4076800.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1715341., 1723034., 1730727., 1738420., 1756470., 1764212., 1771954.,
      1779696., 1797991., 1805782., 1813573., 1821364., 1839904., 1847744.,
      1855584., 1863424., 1877917., 1886394., 1894871., 1903348., 1922182.,
      1930708., 1939234., 1947760., 1966839., 1975414., 1983989., 1992564.,
      2011888., 2020512., 2029136., 2037760., 3666253., 3683354., 3700455.,
      3717556., 3745014., 3762164., 3779314., 3796464., 3824167., 3841366.,
      3858565., 3875764., 3903712., 3920960., 3938208., 3955456., 3458653.,
      3475002., 3491351., 3507700., 3534406., 3550804., 3567202., 3583600.,
      3610551., 3626998., 3643445., 3659892., 3687088., 3703584., 3720080.,
      3736576., 3341101., 3356634., 3372167., 3387700., 3413590., 3429172.,
      3444754., 3460336., 3486471., 3502102., 3517733., 3533364., 3559744.,
      3575424., 3591104., 3606784., 3503677., 3519994., 3536311., 3552628.,
      3579302., 3595668., 3612034., 3628400., 3655319., 3671734., 3688149.,
      3704564., 3731728., 3748192., 3764656., 3781120., 2559981., 2572634.,
      2585287., 2597940., 2620950., 2633652., 2646354., 2659056., 2682311.,
      2695062., 2707813., 2720564., 2744064., 2756864., 2769664., 2782464.,
      1983229., 1994618., 2006007., 2017396., 2039142., 2050580., 2062018.,
      2073456., 2095447., 2106934., 2118421., 2129908., 2152144., 2163680.,
      2175216., 2186752., 2875341., 2887962., 2900583., 2913204., 2936182.,
      2948852., 2961522., 2974192., 2997415., 3010134., 3022853., 3035572.,
      3059040., 3071808., 3084576., 3097344., 3037917., 3051322., 3064727.,
      3078132., 3101894., 3115348., 3128802., 3142256., 3166263., 3179766.,
      3193269., 3206772., 3231024., 3244576., 3258128., 3271680., 1715341.,
      1723034., 1730727., 1738420., 1756470., 1764212., 1771954., 1779696.,
      1797991., 1805782., 1813573., 1821364., 1839904., 1847744., 1855584.,
      1863424., 1877917., 1886394., 1894871., 1903348., 1922182., 1930708.,
      1939234., 1947760., 1966839., 1975414., 1983989., 1992564., 2011888.,
      2020512., 2029136., 2037760.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30525.,  45080.,  49560.,  28650.,  80220.,  112504., 117404., 65296.,
      131180., 181104., 186004., 102144., 53330.,  71344.,  72968.,  38068.,
      192225., 264600., 269080., 148210., 258580., 352604., 357504., 194264.,
      309540., 421204., 426104., 231112., 114090., 150920., 152544., 78836.,
      353925., 484120., 488600., 267770., 436940., 592704., 597604., 323232.,
      487900., 661304., 666204., 360080., 174850., 230496., 232120., 119604.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {75754.,  80654.,  144354., 149254.,
                                         315854., 320754., 384454., 389354.,
                                         555954., 560854., 624554., 629454.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      60275.,   61050.,   88970.,  90160.,  97790.,   99120.,   56490.,
      57300.,   157885.,  160440., 221284., 225008.,  230888.,  234808.,
      128282.,  130592.,  257845., 262360., 355740.,  362208.,  365344.,
      372008.,  200410.,  204288., 103380., 106660.,  138012.,  142688.,
      141148.,  145936.,  73360.,  76136.,  378775.,  384450.,  521150.,
      529200.,  529970.,  538160., 291690., 296420.,  507745.,  517160.,
      691880.,  705208.,  701484., 715008., 380730.,  388528.,  607705.,
      619080.,  826336.,  842408., 835940., 852208.,  452858.,  462224.,
      220980.,  228180.,  291676., 301840., 294812.,  305088.,  151760.,
      157672.,  697275.,  707850., 953330., 968240.,  962150.,  977200.,
      526890.,  535540.,  857605., 873880., 1162476., 1185408., 1172080.,
      1195208., 633178.,  646464., 957565., 975800.,  1296932., 1322608.,
      1306536., 1332408., 705306., 720160., 338580.,  349700.,  445340.,
      460992.,  448476.,  464240., 230160., 239208.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      149254.,  151508.,  158858.,  161308.,  283710.,  288708.,
      293314.,  298508.,  619850.,  631708.,  629454.,  641508.,
      754306.,  768908.,  763910.,  778708.,  1090446., 1111908.,
      1100050., 1121708., 1224902., 1249108., 1234506., 1258908.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      119775.,  120550.,  121325.,  122100.,  176750.,  177940.,  179130.,
      180320.,  194250.,  195580.,  196910.,  198240.,  112170.,  112980.,
      113790.,  114600.,  313215.,  315770.,  318325.,  320880.,  438844.,
      442568.,  446292.,  450016.,  457856.,  461776.,  465696.,  469616.,
      254254.,  256564.,  258874.,  261184.,  511175.,  515690.,  520205.,
      524720.,  705012.,  711480.,  717948.,  724416.,  724024.,  730688.,
      737352.,  744016.,  396942.,  400820.,  404698.,  408576.,  203480.,
      206760.,  210040.,  213320.,  271348.,  276024.,  280700.,  285376.,
      277508.,  282296.,  287084.,  291872.,  143944.,  146720.,  149496.,
      152272.,  751875.,  757550.,  763225.,  768900.,  1034250., 1042300.,
      1050350., 1058400., 1051750., 1059940., 1068130., 1076320., 578650.,
      583380.,  588110.,  592840.,  1006075., 1015490., 1024905., 1034320.,
      1370432., 1383760., 1397088., 1410416., 1389444., 1402968., 1416492.,
      1430016., 753662.,  761460.,  769258.,  777056.,  1204035., 1215410.,
      1226785., 1238160., 1636600., 1652672., 1668744., 1684816., 1655612.,
      1671880., 1688148., 1704416., 896350.,  905716.,  915082.,  924448.,
      434760.,  441960.,  449160.,  456360.,  573188.,  583352.,  593516.,
      603680.,  579348.,  589624.,  599900.,  610176.,  297608.,  303520.,
      309432.,  315344.,  1383975., 1394550., 1405125., 1415700., 1891750.,
      1906660., 1921570., 1936480., 1909250., 1924300., 1939350., 1954400.,
      1045130., 1053780., 1062430., 1071080., 1698935., 1715210., 1731485.,
      1747760., 2302020., 2324952., 2347884., 2370816., 2321032., 2344160.,
      2367288., 2390416., 1253070., 1266356., 1279642., 1292928., 1896895.,
      1915130., 1933365., 1951600., 2568188., 2593864., 2619540., 2645216.,
      2587200., 2613072., 2638944., 2664816., 1395758., 1410612., 1425466.,
      1440320., 666040.,  677160.,  688280.,  699400.,  875028.,  890680.,
      906332.,  921984.,  881188.,  896952.,  912716.,  928480.,  451272.,
      460320.,  469368.,  478416.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      296254.,  298508.,  300762.,  303016.,  315266.,  317716.,  320166.,
      322616.,  562422.,  567420.,  572418.,  577416.,  581434.,  586628.,
      591822.,  597016.,  1227842., 1239700., 1251558., 1263416., 1246854.,
      1258908., 1270962., 1283016., 1494010., 1508612., 1523214., 1537816.,
      1513022., 1527820., 1542618., 1557416., 2159430., 2180892., 2202354.,
      2223816., 2178442., 2200100., 2221758., 2243416., 2425598., 2449804.,
      2474010., 2498216., 2444610., 2469012., 2493414., 2517816.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      118925.,  122100.,  175735.,  180320.,  193375.,  198240.,  111780.,
      114600.,  313985.,  320880.,  440167.,  450016.,  459375.,  469616.,
      255276.,  261184.,  513905.,  524720.,  709079.,  724416.,  728287.,
      744016.,  399532.,  408576.,  206160.,  213320.,  275240.,  285376.,
      281512.,  291872.,  146320.,  152272.,  755925.,  768900.,  1040095.,
      1058400., 1057735., 1076320., 582180.,  592840.,  1013705., 1034320.,
      1381359., 1410416., 1400567., 1430016., 760172.,  777056.,  1213625.,
      1238160., 1650271., 1684816., 1669479., 1704416., 904428.,  924448.,
      441360.,  456360.,  582568.,  603680.,  588840.,  610176.,  303120.,
      315344.,  1392925., 1415700., 1904455., 1936480., 1922095., 1954400.,
      1052580., 1071080., 1713425., 1747760., 2322551., 2370816., 2341759.,
      2390416., 1265068., 1292928., 1913345., 1951600., 2591463., 2645216.,
      2610671., 2664816., 1409324., 1440320., 676560.,  699400.,  889896.,
      921984.,  896168.,  928480.,  459920.,  478416.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      296107.,  303016.,  315315.,  322616.,  565019.,  577416.,
      584227.,  597016.,  1237299., 1263416., 1256507., 1283016.,
      1506211., 1537816., 1525419., 1557416., 2178491., 2223816.,
      2197699., 2243416., 2447403., 2498216., 2466611., 2517816.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      236325.,  237850.,  242650.,  244200.,  349125.,  351470.,  358260.,
      360640.,  384125.,  386750.,  393820.,  396480.,  221960.,  223560.,
      227580.,  229200.,  622895.,  627970.,  636650.,  641760.,  872935.,
      880334.,  892584.,  900032.,  910959.,  918750.,  931392.,  939232.,
      505960.,  510552.,  517748.,  522368.,  1018815., 1027810., 1040410.,
      1049440., 1405271., 1418158., 1435896., 1448832., 1443295., 1456574.,
      1474704., 1488032., 791336.,  799064.,  809396.,  817152.,  405780.,
      412320.,  420080.,  426640.,  541156.,  550480.,  561400.,  570752.,
      553476.,  563024.,  574168.,  583744.,  287104.,  292640.,  298992.,
      304544.,  1500525., 1511850., 1526450., 1537800., 2064125., 2080190.,
      2100700., 2116800., 2099125., 2115470., 2136260., 2152640., 1154920.,
      1164360., 1176220., 1185680., 2008615., 2027410., 2049810., 2068640.,
      2736111., 2762718., 2794176., 2820832., 2774135., 2801134., 2832984.,
      2860032., 1504776., 1520344., 1538516., 1554112., 2404535., 2427250.,
      2453570., 2476320., 3268447., 3300542., 3337488., 3369632., 3306471.,
      3338958., 3376296., 3408832., 1790152., 1808856., 1830164., 1848896.,
      868340.,  882720.,  898320.,  912720.,  1144836., 1165136., 1187032.,
      1207360., 1157156., 1177680., 1199800., 1220352., 594432.,  606240.,
      618864.,  630688.,  2764725., 2785850., 2810250., 2831400., 3779125.,
      3808910., 3843140., 3872960., 3814125., 3844190., 3878700., 3908800.,
      2087880., 2105160., 2124860., 2142160., 3394335., 3426850., 3462970.,
      3495520., 4599287., 4645102., 4695768., 4741632., 4637311., 4683518.,
      4734576., 4780832., 2503592., 2530136., 2559284., 2585856., 3790255.,
      3826690., 3866730., 3903200., 5131623., 5182926., 5239080., 5290432.,
      5169647., 5221342., 5277888., 5329632., 2788968., 2818648., 2850932.,
      2880640., 1330900., 1353120., 1376560., 1398800., 1748516., 1779792.,
      1812664., 1843968., 1760836., 1792336., 1825432., 1856960., 901760.,
      919840.,  938736.,  956832.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      587755.,  592214.,  601524.,  606032.,  625779.,  630630.,  640332.,
      645232.,  1120091., 1130038., 1144836., 1154832., 1158115., 1168454.,
      1183644., 1194032., 2450931., 2474598., 2503116., 2526832., 2488955.,
      2513014., 2541924., 2566032., 2983267., 3012422., 3046428., 3075632.,
      3021291., 3050838., 3085236., 3114832., 4314107., 4356982., 4404708.,
      4447632., 4352131., 4395398., 4443516., 4486832., 4846443., 4894806.,
      4948020., 4996432., 4884467., 4933222., 4986828., 5035632.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      471125.,   472650.,   474175.,   475700.,   483750.,   485300.,
      486850.,   488400.,   695905.,   698250.,   700595.,   702940.,
      714140.,   716520.,   718900.,   721280.,   765625.,   768250.,
      770875.,   773500.,   784980.,   787640.,   790300.,   792960.,
      442320.,   443920.,   445520.,   447120.,   453540.,   455160.,
      456780.,   458400.,   1240715.,  1245790.,  1250865.,  1255940.,
      1268190.,  1273300.,  1278410.,  1283520.,  1738471.,  1745870.,
      1753269.,  1760668.,  1777720.,  1785168.,  1792616.,  1800064.,
      1814127.,  1821918.,  1829709.,  1837500.,  1854944.,  1862784.,
      1870624.,  1878464.,  1007328.,  1011920.,  1016512.,  1021104.,
      1030876.,  1035496.,  1040116.,  1044736.,  2028635.,  2037630.,
      2046625.,  2055620.,  2071790.,  2080820.,  2089850.,  2098880.,
      2797655.,  2810542.,  2823429.,  2836316.,  2858856.,  2871792.,
      2884728.,  2897664.,  2873311.,  2886590.,  2899869.,  2913148.,
      2936080.,  2949408.,  2962736.,  2976064.,  1574944.,  1582672.,
      1590400.,  1598128.,  1611036.,  1618792.,  1626548.,  1634304.,
      805020.,   811560.,   818100.,   824640.,   833600.,   840160.,
      846720.,   853280.,   1072988.,  1082312.,  1091636.,  1100960.,
      1113448.,  1122800.,  1132152.,  1141504.,  1097404.,  1106952.,
      1116500.,  1126048.,  1138760.,  1148336.,  1157912.,  1167488.,
      568672.,   574208.,   579744.,   585280.,   592432.,   597984.,
      603536.,   609088.,   2989725.,  3001050.,  3012375.,  3023700.,
      3041550.,  3052900.,  3064250.,  3075600.,  4112185.,  4128250.,
      4144315.,  4160380.,  4185300.,  4201400.,  4217500.,  4233600.,
      4181905.,  4198250.,  4214595.,  4230940.,  4256140.,  4272520.,
      4288900.,  4305280.,  2300400.,  2309840.,  2319280.,  2328720.,
      2342980.,  2352440.,  2361900.,  2371360.,  3998435.,  4017230.,
      4036025.,  4054820.,  4080790.,  4099620.,  4118450.,  4137280.,
      5445615.,  5472222.,  5498829.,  5525436.,  5561696.,  5588352.,
      5615008.,  5641664.,  5521271.,  5548270.,  5575269.,  5602268.,
      5638920.,  5665968.,  5693016.,  5720064.,  2993984.,  3009552.,
      3025120.,  3040688.,  3061436.,  3077032.,  3092628.,  3108224.,
      4786355.,  4809070.,  4831785.,  4854500.,  4884390.,  4907140.,
      4929890.,  4952640.,  6504799.,  6536894.,  6568989.,  6601084.,
      6642832.,  6674976.,  6707120.,  6739264.,  6580455.,  6612942.,
      6645429.,  6677916.,  6720056.,  6752592.,  6785128.,  6817664.,
      3561600.,  3580304.,  3599008.,  3617712.,  3641596.,  3660328.,
      3679060.,  3697792.,  1722300.,  1736680.,  1751060.,  1765440.,
      1782240.,  1796640.,  1811040.,  1825440.,  2269372.,  2289672.,
      2309972.,  2330272.,  2353736.,  2374064.,  2394392.,  2414720.,
      2293788.,  2314312.,  2334836.,  2355360.,  2379048.,  2399600.,
      2420152.,  2440704.,  1177056.,  1188864.,  1200672.,  1212480.,
      1225904.,  1237728.,  1249552.,  1261376.,  5508325.,  5529450.,
      5550575.,  5571700.,  5599350.,  5620500.,  5641650.,  5662800.,
      7528465.,  7558250.,  7588035.,  7617820.,  7656460.,  7686280.,
      7716100.,  7745920.,  7598185.,  7628250.,  7658315.,  7688380.,
      7727300.,  7757400.,  7787500.,  7817600.,  4158480.,  4175760.,
      4193040.,  4210320.,  4232420.,  4249720.,  4267020.,  4284320.,
      6756155.,  6788670.,  6821185.,  6853700.,  6893390.,  6925940.,
      6958490.,  6991040.,  9152759.,  9198574.,  9244389.,  9290204.,
      9345672.,  9391536.,  9437400.,  9483264.,  9228415.,  9274622.,
      9320829.,  9367036.,  9422896.,  9469152.,  9515408.,  9561664.,
      4980640.,  5007184.,  5033728.,  5060272.,  5091996.,  5118568.,
      5145140.,  5171712.,  7544075.,  7580510.,  7616945.,  7653380.,
      7696990.,  7733460.,  7769930.,  7806400.,  10211943., 10263246.,
      10314549., 10365852., 10426808., 10478160., 10529512., 10580864.,
      10287599., 10339294., 10390989., 10442684., 10504032., 10555776.,
      10607520., 10659264., 5548256.,  5577936.,  5607616.,  5637296.,
      5672156.,  5701864.,  5731572.,  5761280.,  2639580.,  2661800.,
      2684020.,  2706240.,  2730880.,  2753120.,  2775360.,  2797600.,
      3465756.,  3497032.,  3528308.,  3559584.,  3594024.,  3625328.,
      3656632.,  3687936.,  3490172.,  3521672.,  3553172.,  3584672.,
      3619336.,  3650864.,  3682392.,  3713920.,  1785440.,  1803520.,
      1821600.,  1839680.,  1859376.,  1877472.,  1895568.,  1913664.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1171051., 1175510., 1179969., 1184428.,  1198540., 1203048., 1207556.,
      1212064., 1246707., 1251558., 1256409.,  1261260., 1275764., 1280664.,
      1285564., 1290464., 2230235., 2240182.,  2250129., 2260076., 2279676.,
      2289672., 2299668., 2309664., 2305891.,  2316230., 2326569., 2336908.,
      2356900., 2367288., 2377676., 2388064.,  4878195., 4901862., 4925529.,
      4949196., 4982516., 5006232., 5029948.,  5053664., 4953851., 4977910.,
      5001969., 5026028., 5059740., 5083848.,  5107956., 5132064., 5937379.,
      5966534., 5995689., 6024844., 6063652.,  6092856., 6122060., 6151264.,
      6013035., 6042582., 6072129., 6101676.,  6140876., 6170472., 6200068.,
      6229664., 8585339., 8628214., 8671089.,  8713964., 8766492., 8809416.,
      8852340., 8895264., 8660995., 8704262.,  8747529., 8790796., 8843716.,
      8887032., 8930348., 8973664., 9644523.,  9692886., 9741249., 9789612.,
      9847628., 9896040., 9944452., 9992864.,  9720179., 9768934., 9817689.,
      9866444., 9924852., 9973656., 10022460., 10071264.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      469425.,  475700.,  482025.,  488400.,  693875.,  702940.,  712075.,
      721280.,  763875.,  773500.,  783195.,  792960.,  441540.,  447120.,
      452740.,  458400.,  1242255., 1255940., 1269695., 1283520., 1741117.,
      1760668., 1780317., 1800064., 1817165., 1837500., 1857933., 1878464.,
      1009372., 1021104., 1032892., 1044736., 2034095., 2055620., 2077215.,
      2098880., 2805789., 2836316., 2866941., 2897664., 2881837., 2913148.,
      2944557., 2976064., 1580124., 1598128., 1616188., 1634304., 810380.,
      824640.,  838940.,  853280.,  1080772., 1100960., 1121204., 1141504.,
      1105412., 1126048., 1146740., 1167488., 573424.,  585280.,  597168.,
      609088.,  2997825., 3023700., 3049625., 3075600., 4123875., 4160380.,
      4196955., 4233600., 4193875., 4230940., 4268075., 4305280., 2307460.,
      2328720., 2350020., 2371360., 4013695., 4054820., 4096015., 4137280.,
      5467469., 5525436., 5583501., 5641664., 5543517., 5602268., 5661117.,
      5720064., 3007004., 3040688., 3074428., 3108224., 4805535., 4854500.,
      4903535., 4952640., 6532141., 6601084., 6670125., 6739264., 6608189.,
      6677916., 6747741., 6817664., 3577756., 3617712., 3657724., 3697792.,
      1735500., 1765440., 1795420., 1825440., 2288132., 2330272., 2372468.,
      2414720., 2312772., 2355360., 2398004., 2440704., 1188080., 1212480.,
      1236912., 1261376., 5526225., 5571700., 5617225., 5662800., 7553875.,
      7617820., 7681835., 7745920., 7623875., 7688380., 7752955., 7817600.,
      4173380., 4210320., 4247300., 4284320., 6785135., 6853700., 6922335.,
      6991040., 8798557., 8892892., 8987325., 9081856., 7375469., 7462396.,
      7549421., 7636544., 3571036., 3618480., 3665980., 3713536., 1719695.,
      1755140., 1790655., 1826240., 2121789., 2169756., 2217821., 2265984.,
      1616205., 1656764., 1697421., 1738176., 701148.,  722096.,  743100.,
      764160.,  243980.,  248640.,  253340.,  258080.,  341572.,  348320.,
      355124.,  361984.,  366212.,  373408.,  380660.,  387968.,  197104.,
      201280.,  205488.,  209728.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1170757., 1184428., 1198197., 1212064., 1246805., 1261260., 1275813.,
      1290464., 2235429., 2260076., 2284821., 2309664., 2311477., 2336908.,
      2362437., 2388064., 4897109., 4949196., 5001381., 5053664., 4973157.,
      5026028., 5078997., 5132064., 5961781., 6024844., 6088005., 6151264.,
      6037829., 6101676., 6165621., 6229664., 8623461., 8713964., 8804565.,
      8895264., 8699509., 8790796., 8882181., 8973664., 4899909., 4972716.,
      5045621., 5118624., 4158805., 4226252., 4293797., 4361440.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      935825.,  938850.,  948350.,  951400.,  960975.,  964050.,  973700.,
      976800.,  1383095., 1387750., 1401190., 1405880., 1419425., 1424150.,
      1437800., 1442560., 1522535., 1527750., 1541750., 1547000., 1561105.,
      1566390., 1580600., 1585920., 879900.,  883080.,  891040.,  894240.,
      902260.,  905480.,  913560.,  916800.,  2474395., 2484510., 2501730.,
      2511880., 2529205., 2539390., 2556820., 2567040., 3467485., 3482234.,
      3506538., 3521336., 3545787., 3560634., 3585232., 3600128., 3618797.,
      3634330., 3659418., 3675000., 3700235., 3715866., 3741248., 3756928.,
      2009588., 2018744., 2033024., 2042208., 2056572., 2065784., 2080232.,
      2089472., 4050235., 4068190., 4093250., 4111240., 4136405., 4154430.,
      4179700., 4197760., 5585853., 5611578., 5646858., 5672632., 5708059.,
      5733882., 5769456., 5795328., 5737165., 5763674., 5799738., 5826296.,
      5862507., 5889114., 5925472., 5952128., 3144820., 3160248., 3180800.,
      3196256., 3216892., 3232376., 3253096., 3268608., 1607700., 1620760.,
      1636200., 1649280., 1664780., 1677880., 1693440., 1706560., 2142924.,
      2161544., 2183272., 2201920., 2223732., 2242408., 2264304., 2283008.,
      2191756., 2210824., 2233000., 2252096., 2274356., 2293480., 2315824.,
      2334976., 1135792., 1146848., 1159488., 1170560., 1183248., 1194336.,
      1207072., 1218176., 5578785., 5600386., 5628462., 5650088., 5678239.,
      5699890., 5728116., 5749792., 6326375., 6353350., 6389110., 6416120.,
      6451985., 6479030., 6515000., 6542080., 5767447., 5792934., 5827206.,
      5852728., 5887105., 5912662., 5947144., 5972736., 3166556., 3181320.,
      3200864., 3215648., 3235252., 3250056., 3269720., 3284544., 1988171.,
      2004222., 2027378., 2043464., 2066725., 2082846., 2106212., 2122368.,
      2197229., 2216602., 2245530., 2264952., 2294027., 2313498., 2342720.,
      2362240., 2108925., 2127034., 2154698., 2172856., 2200667., 2218874.,
      2246832., 2265088., 1129140., 1139768., 1155520., 1166176., 1182012.,
      1192696., 1208616., 1219328., 2361835., 2371390., 2388050., 2397640.,
      2414405., 2424030., 2440900., 2450560., 3316173., 3330138., 3353658.,
      3367672., 3391339., 3405402., 3429216., 3443328., 3467485., 3482234.,
      3506538., 3521336., 3545787., 3560634., 3585232., 3600128., 1928500.,
      1937208., 1951040., 1959776., 1973692., 1982456., 1996456., 2005248.,
      1046100., 1054360., 1065000., 1073280., 1083980., 1092280., 1103040.,
      1111360., 1410444., 1422344., 1437352., 1449280., 1464372., 1476328.,
      1491504., 1503488., 1459276., 1471624., 1487080., 1499456., 1514996.,
      1527400., 1543024., 1555456., 763312.,  770528.,  779328.,  786560.,
      795408.,  802656.,  811552.,  818816.,  4431025., 4447650., 4470750.,
      4487400., 4510575., 4527250., 4550500., 4567200., 6124055., 6147750.,
      6180230., 6203960., 6236545., 6260310., 6293000., 6316800., 6263495.,
      6287750., 6320790., 6345080., 6378225., 6402550., 6435800., 6460160.,
      3458460., 3472520., 3491360., 3505440., 3524340., 3538440., 3557400.,
      3571520., 6301435., 6330590., 6366850., 6396040., 6432405., 6461630.,
      6498100., 6527360., 8217853., 8258234., 8308170., 8348600., 8398683.,
      8439162., 8489392., 8529920., 6874125., 6911194., 6957818., 6994936.,
      7041707., 7078874., 7125792., 7163008., 3337076., 3357368., 3382784.,
      3403104., 3428604., 3448952., 3474536., 3494912., 2040475., 2056990.,
      2080610., 2097160., 2120885., 2137470., 2161300., 2177920., 2623453.,
      2646138., 2678378., 2701112., 2733499., 2756282., 2788816., 2811648.,
      2197229., 2216602., 2245530., 2264952., 2294027., 2313498., 2342720.,
      2362240., 1048052., 1058232., 1073536., 1083744., 1099132., 1109368.,
      1124840., 1135104., 484500.,  487960.,  493800.,  497280.,  503180.,
      506680.,  512640.,  516160.,  677964.,  683144.,  691432.,  696640.,
      705012.,  710248.,  718704.,  723968.,  726796.,  732424.,  741160.,
      746816.,  755636.,  761320.,  770224.,  775936.,  390832.,  394208.,
      399168.,  402560.,  407568.,  410976.,  416032.,  419456.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2332645., 2341514., 2359938., 2368856., 2387427., 2396394., 2415112.,
      2424128., 2483957., 2493610., 2512818., 2522520., 2541875., 2551626.,
      2571128., 2580928., 4451013., 4470858., 4500258., 4520152., 4549699.,
      4569642., 4599336., 4619328., 4602325., 4622954., 4653138., 4673816.,
      4704147., 4724874., 4755352., 4776128., 4158965., 4188842., 4228274.,
      4258200., 4297779., 4327754., 4367480., 4397504., 3339525., 3366090.,
      3402210., 3428824., 3465091., 3491754., 3528168., 3554880., 2234581.,
      2246762., 2268498., 2280728., 2302611., 2314890., 2336920., 2349248.,
      2332645., 2341514., 2359938., 2368856., 2387427., 2396394., 2415112.,
      2424128., 7477253., 7512778., 7557858., 7593432., 7638659., 7674282.,
      7719656., 7755328., 7628565., 7664874., 7710738., 7747096., 7793107.,
      7829514., 7875672., 7912128., 4821733., 4853898., 4895618., 4927832.,
      4969699., 5001962., 5043976., 5076288., 4158965., 4188842., 4228274.,
      4258200., 4297779., 4327754., 4367480., 4397504.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, SAME3x14x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      627025.,  630050.,  633075.,  636100.,  645394.,  648444.,  651494.,
      654544.,  663963.,  667038.,  670113.,  673188.,  682732.,  685832.,
      688932.,  692032.,  989503.,  994158.,  998813.,  1003468., 1016954.,
      1021644., 1026334., 1031024., 1044685., 1049410., 1054135., 1058860.,
      1072696., 1077456., 1082216., 1086976., 1128559., 1133774., 1138989.,
      1144204., 1158250., 1163500., 1168750., 1174000., 1188221., 1193506.,
      1198791., 1204076., 1218472., 1223792., 1229112., 1234432., 761292.,
      764472.,  767652.,  770832.,  779456.,  782656.,  785856.,  789056.,
      797780.,  801000.,  804220.,  807440.,  816264.,  819504.,  822744.,
      825984.,  2206131., 2216246., 2226361., 2236476., 2254110., 2264260.,
      2274410., 2284560., 2302369., 2312554., 2322739., 2332924., 2350908.,
      2361128., 2371348., 2381568., 3198493., 3213242., 3227991., 3242740.,
      3267846., 3282644., 3297442., 3312240., 3337591., 3352438., 3367285.,
      3382132., 3407728., 3422624., 3437520., 3452416., 3361069., 3376602.,
      3392135., 3407668., 3433558., 3449140., 3464722., 3480304., 3506439.,
      3522070., 3537701., 3553332., 3579712., 3595392., 3611072., 3626752.,
      2097188., 2106344., 2115500., 2124656., 2139936., 2149120., 2158304.,
      2167488., 2182908., 2192120., 2201332., 2210544., 2226104., 2235344.,
      2244584., 2253824., 1826387., 1835126., 1843865., 1852604., 1868862.,
      1877636., 1886410., 1895184., 1911617., 1920426., 1929235., 1938044.,
      1954652., 1963496., 1972340., 1981184., 2003197., 2014586., 2025975.,
      2037364., 2059110., 2070548., 2081986., 2093424., 2115415., 2126902.,
      2138389., 2149876., 2172112., 2183648., 2195184., 2206720., 2165773.,
      2177946., 2190119., 2202292., 2224822., 2237044., 2249266., 2261488.,
      2284263., 2296534., 2308805., 2321076., 2344096., 2356416., 2368736.,
      2381056., 1207460., 1214696., 1221932., 1229168., 1242528., 1249792.,
      1257056., 1264320., 1277820., 1285112., 1292404., 1299696., 1313336.,
      1320656., 1327976., 1335296., 816420.,  819240.,  822060.,  824880.,
      832440.,  835280.,  838120.,  840960.,  848620.,  851480.,  854340.,
      857200.,  864960.,  867840.,  870720.,  873600.,  1156316., 1160600.,
      1164884., 1169168., 1179640., 1183952., 1188264., 1192576., 1203188.,
      1207528., 1211868., 1216208., 1226960., 1231328., 1235696., 1240064.,
      1253532., 1258264., 1262996., 1267728., 1278648., 1283408., 1288168.,
      1292928., 1303988., 1308776., 1313564., 1318352., 1329552., 1334368.,
      1339184., 1344000., 679472.,  682336.,  685200.,  688064.,  694080.,
      696960.,  699840.,  702720.,  708816.,  711712.,  714608.,  717504.,
      723680.,  726592.,  729504.,  732416.,  2173409., 2182722., 2192035.,
      2201348., 2216930., 2226268., 2235606., 2244944., 2260651., 2270014.,
      2279377., 2288740., 2304572., 2313960., 2323348., 2332736., 2777455.,
      2789070., 2800685., 2812300., 2832746., 2844396., 2856046., 2867696.,
      2888317., 2900002., 2911687., 2923372., 2944168., 2955888., 2967608.,
      2979328., 2743455., 2754606., 2765757., 2776908., 2796890., 2808076.,
      2819262., 2830448., 2850605., 2861826., 2873047., 2884268., 2904600.,
      2915856., 2927112., 2938368., 1841420., 1847992., 1854564., 1861136.,
      1873152., 1879744., 1886336., 1892928., 1905044., 1911656., 1918268.,
      1924880., 1937096., 1943728., 1950360., 1956992., 1630179., 1639062.,
      1647945., 1656828., 1673230., 1682148., 1691066., 1699984., 1716561.,
      1725514., 1734467., 1743420., 1760172., 1769160., 1778148., 1787136.,
      1751085., 1762266., 1773447., 1784628., 1806166., 1817396., 1828626.,
      1839856., 1861639., 1872918., 1884197., 1895476., 1917504., 1928832.,
      1940160., 1951488., 1675069., 1686010., 1696951., 1707892., 1729190.,
      1740180., 1751170., 1762160., 1783703., 1794742., 1805781., 1816820.,
      1838608., 1849696., 1860784., 1871872., 986084.,  992616.,  999148.,
      1005680., 1018336., 1024896., 1031456., 1038016., 1050812., 1057400.,
      1063988., 1070576., 1083512., 1090128., 1096744., 1103360., 2088067.,
      2097622., 2107177., 2116732., 2133806., 2143396., 2152986., 2162576.,
      2179825., 2189450., 2199075., 2208700., 2226124., 2235784., 2245444.,
      2255104., 3035917., 3049882., 3063847., 3077812., 3102134., 3116148.,
      3130162., 3144176., 3168743., 3182806., 3196869., 3210932., 3235744.,
      3249856., 3263968., 3278080., 3198493., 3213242., 3227991., 3242740.,
      3267846., 3282644., 3297442., 3312240., 3337591., 3352438., 3367285.,
      3382132., 3407728., 3422624., 3437520., 3452416., 2000996., 2009704.,
      2018412., 2027120., 2041952., 2050688., 2059424., 2068160., 2083132.,
      2091896., 2100660., 2109424., 2124536., 2133328., 2142120., 2150912.,
      2083940., 2092200., 2100460., 2108720., 2121720., 2130000., 2138280.,
      2146560., 2159660., 2167960., 2176260., 2184560., 2197760., 2206080.,
      2214400., 2222720., 2168476., 2178840., 2189204., 2199568., 2216120.,
      2226512., 2236904., 2247296., 2263988., 2274408., 2284828., 2295248.,
      2312080., 2322528., 2332976., 2343424., 1526364., 1535128., 1543892.,
      1552656., 1567608., 1576400., 1585192., 1593984., 1609076., 1617896.,
      1626716., 1635536., 1650768., 1659616., 1668464., 1677312., 780080.,
      785248.,  790416.,  795584.,  803904.,  809088.,  814272.,  819456.,
      827856.,  833056.,  838256.,  843456.,  851936.,  857152.,  862368.,
      867584.,  824433.,  828258.,  832083.,  835908.,  846002.,  849852.,
      853702.,  857552.,  867771.,  871646.,  875521.,  879396.,  889740.,
      893640.,  897540.,  901440.,  1267615., 1273390., 1279165., 1284940.,
      1299546., 1305356., 1311166., 1316976., 1331757., 1337602., 1343447.,
      1349292., 1364248., 1370128., 1376008., 1381888., 1406671., 1413006.,
      1419341., 1425676., 1440842., 1447212., 1453582., 1459952., 1475293.,
      1481698., 1488103., 1494508., 1510024., 1516464., 1522904., 1529344.,
      932940.,  936760.,  940580.,  944400.,  953664.,  957504.,  961344.,
      965184.,  974548.,  978408.,  982268.,  986128.,  995592.,  999472.,
      1003352., 1007232., 2442259., 2453494., 2464729., 2475964., 2494718.,
      2505988., 2517258., 2528528., 2547457., 2558762., 2570067., 2581372.,
      2600476., 2611816., 2623156., 2634496., 3392061., 3407866., 3423671.,
      3439476., 3465638., 3481492., 3497346., 3513200., 3539607., 3555510.,
      3571413., 3587316., 3613968., 3629920., 3645872., 3661824., 3110221.,
      3124762., 3139303., 3153844., 3178742., 3193332., 3207922., 3222512.,
      3247655., 3262294., 3276933., 3291572., 3316960., 3331648., 3346336.,
      3361024., 1910692., 1918696., 1926700., 1934704., 1948832., 1956864.,
      1964896., 1972928., 1987196., 1995256., 2003316., 2011376., 2025784.,
      2033872., 2041960., 2050048., 1676467., 1685302., 1694137., 1702972.,
      1719326., 1728196., 1737066., 1745936., 1762465., 1771370., 1780275.,
      1789180., 1805884., 1814824., 1823764., 1832704., 2163997., 2176442.,
      2188887., 2201332., 2224134., 2236628., 2249122., 2261616., 2284663.,
      2297206., 2309749., 2322292., 2345584., 2358176., 2370768., 2383360.,
      1751085., 1762266., 1773447., 1784628., 1806166., 1817396., 1828626.,
      1839856., 1861639., 1872918., 1884197., 1895476., 1917504., 1928832.,
      1940160., 1951488., 889892.,  895976.,  902060.,  908144.,  920352.,
      926464.,  932576.,  938688.,  951036.,  957176.,  963316.,  969456.,
      981944.,  988112.,  994280.,  1000448., 965540.,  969000.,  972460.,
      975920.,  984120.,  987600.,  991080.,  994560.,  1002860., 1006360.,
      1009860., 1013360., 1021760., 1025280., 1028800., 1032320., 1350748.,
      1355928., 1361108., 1366288., 1377656., 1382864., 1388072., 1393280.,
      1404788., 1410024., 1415260., 1420496., 1432144., 1437408., 1442672.,
      1447936., 1447964., 1453592., 1459220., 1464848., 1476664., 1482320.,
      1487976., 1493632., 1505588., 1511272., 1516956., 1522640., 1534736.,
      1540448., 1546160., 1551872., 778288.,  781664.,  785040.,  788416.,
      794944.,  798336.,  801728.,  805120.,  811728.,  815136.,  818544.,
      821952.,  828640.,  832064.,  835488.,  838912.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride4, VALID3x14x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4656421.,  4665290.,  4674159.,  4683028.,  4710958.,  4719876.,
      4728794.,  4737712.,  4765887.,  4774854.,  4783821.,  4792788.,
      4821208.,  4830224.,  4839240.,  4848256.,  4958261.,  4967914.,
      4977567.,  4987220.,  5015934.,  5025636.,  5035338.,  5045040.,
      5073999.,  5083750.,  5093501.,  5103252.,  5132456.,  5142256.,
      5152056.,  5161856.,  8882181.,  8902026.,  8921871.,  8941716.,
      8980622.,  9000516.,  9020410.,  9040304.,  9079455.,  9099398.,
      9119341.,  9139284.,  9178680.,  9198672.,  9218664.,  9238656.,
      9184021.,  9204650.,  9225279.,  9245908.,  9285598.,  9306276.,
      9326954.,  9347632.,  9387567.,  9408294.,  9429021.,  9449748.,
      9489928.,  9510704.,  9531480.,  9552256.,  8288053.,  8317930.,
      8347807.,  8377684.,  8426622.,  8456548.,  8486474.,  8516400.,
      8565583.,  8595558.,  8625533.,  8655508.,  8704936.,  8734960.,
      8764984.,  8795008.,  6652485.,  6679050.,  6705615.,  6732180.,
      6777806.,  6804420.,  6831034.,  6857648.,  6903519.,  6930182.,
      6956845.,  6983508.,  7029624.,  7056336.,  7083048.,  7109760.,
      4456981.,  4469162.,  4481343.,  4493524.,  4524766.,  4536996.,
      4549226.,  4561456.,  4592943.,  4605222.,  4617501.,  4629780.,
      4661512.,  4673840.,  4686168.,  4698496.,  4656421.,  4665290.,
      4674159.,  4683028.,  4710958.,  4719876.,  4728794.,  4737712.,
      4765887.,  4774854.,  4783821.,  4792788.,  4821208.,  4830224.,
      4839240.,  4848256.,  14918981., 14954506., 14990031., 15025556.,
      15080142., 15115716., 15151290., 15186864., 15241695., 15277318.,
      15312941., 15348564., 15403640., 15439312., 15474984., 15510656.,
      15220821., 15257130., 15293439., 15329748., 15385118., 15421476.,
      15457834., 15494192., 15549807., 15586214., 15622621., 15659028.,
      15714888., 15751344., 15787800., 15824256., 9611301.,  9643466.,
      9675631.,  9707796.,  9759022.,  9791236.,  9823450.,  9855664.,
      9907135.,  9939398.,  9971661.,  10003924., 10055640., 10087952.,
      10120264., 10152576., 8288053.,  8317930.,  8347807.,  8377684.,
      8426622.,  8456548.,  8486474.,  8516400.,  8565583.,  8595558.,
      8625533.,  8655508.,  8704936.,  8734960.,  8764984.,  8795008.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}